2017-03-22 11 views
1

私はサイトのコンテンツをcURLで取得しようとしていますが、端末でうまく動作しますが、PHP、以下は私のコードです。httpsでcURLを使用しようとするとSSLRead()がエラー-9806を返す

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://example.com/",  
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "GET", 
    CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache", 
    "referer: https://www.example.com/something", 
    "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 

私も私のコードでは、以下の設定など、試してみました..私は同じエラーを得た、

を私はthis questionに答えを試してみましたが、それは私のために動作しませんでした、それはなかったのいずれかの仕事。私はnginxのとLaravelを使用してい

CURLOPT_SSL_VERIFYHOST => false, 
    CURLOPT_SSL_VERIFYPEER => false, 

は、私のPHPのバージョンは、私のcURLのバージョンは7.51.0 であり、私はMacOSのシエラ10.12.3によ、7.1.2です。

どうすれば動作させることができますか?

+0

を、あなたはので、コンテンツを取得した後、I ' – miken32

+0

は、私は、このケースではカールを使用したい=のfile_get_contents(「https://example.com」)だけで、' $応答を試してみましたPOST要求を行わなければなりません。 – Vinny

+0

***エラー-9806 ***はAppleSSLエラーではなく、Apple SecureTransportエラーです。 cURLは、OpenSSLライブラリではなくAppleライブラリに対して作成されました。 – jww

答えて

3

OpenSSLサポートでcurlを再インストールしてください。あなたがHomebrewを使用している場合:

brew remove curl 
brew install openssl 
brew install --with-openssl curl 
関連する問題