ホームページ  >  記事  >  バックエンド開発  >  PHP CURL でよくあるエラー: SSL エラー、bool(false)_PHP チュートリアル

PHP CURL でよくあるエラー: SSL エラー、bool(false)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:21:48830ブラウズ

症状: phpのcurl呼び出しでhttpsエラーが発生します。
トラブルシューティング方法: コマンドラインでcurl呼び出しを使用してみてください。
原因: サーバーが配置されているコンピューター室では SSL 証明書を検証できません。
回避策: SSL 証明書のチェックをスキップします。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

症状:phpのcurlはcurl_execを呼び出してbool(false)を返しますが、コマンドラインのcurlの呼び出しは正常です。
トラブルシューティング方法:
var_dump(curl_error($ch));
Return:
string(23) "サーバーからの空の応答"
再度トラブルシューティング:
curl_setopt($ch, CURLOPT_HEADER, true); t( $ch, CURLOPT_RETURNTRANSFER, false);

Return: HTTP/1.1 100 Continue
Connection: close
原因: php Curl は HTTP 100 を受信した後に終了し、引き続き HTTP 200 を受信する必要があります

解決策: curl_setopt( $ ch, CURLOPT_HTTPHEADER, array('Expect:'));


PHP と cURL: 100- continue ヘッダーの無効化
2006 年 6 月 15 日公開
私は cURL を (PHP 経由で) 使用して、一種のプロキシを構築してきました。私が取り組んでいるプロジェクトでは、(HTTP ステータスを回復するために) 返されたヘッダーを解析する必要があるため、以前は正常に動作していましたが、今回は何らかの理由で問題が発生しました。返された内容を詳しく調べてみると、何らかの理由で、Apache が「通常の」ヘッダーの前に次のような追加の応答ヘッダーを追加していることが判明しました:

HTTP/1.1 100 Continue

HTTP/1.1 200 OK 日付: 2006 年 6 月 9 日金曜日15:23:42 GMT
サーバー: Apache
...少しグーグルで調べてみると、これは cURL がデフォルトで送信するヘッダーに関係していることがわかりました:

Expect: 100- continue

…これは、Apache に送信するよう指示します。余分なヘッダーをかなり調べましたが、PHP でヘッダーを手動で削除する以外に実行可能な解決策が見つかりませんでした。最終的に、直感でこれを試しました:

curl_setopt( $curl_handle , CURLOPT_HTTPHEADER, array( 'Expect:' ) );

…これは基本的に元の 'Expect:' ヘッダーを空のヘッダーでオーバーライドします

これが誰かに役立つことを願っています。

http://www.bkjia.com/PHPjc/324832.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/324832.html技術記事症状: PHP CURL 呼び出し https エラー トラブルシューティング方法: コマンドラインで CURL 呼び出しを使用してみてください。 理由: サーバーが配置されているコンピューター室では SSL 証明書を検証できません。 回避策: SSL 証明書のチェックをスキップします。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。