ホームページ >バックエンド開発 >PHPチュートリアル >PHP Curl で 403 エラーが発生した場合はどうすればよいですか?カールエラーの解決策
ECURL_SETOPT ($ this-& gt; msh,curlopt_httpproxytunnel, true); HP ドキュメントには詳細な説明がありませんが、mancurl に詳細な説明があります。両方とも proxytunnel (-p パラメーター) を使用して、他のプロトコルを使用できます。は http プロキシ経由で送信されますが、プロキシ (-x パラメータ) は http プロトコルのみを使用できます。つまり、Google Baidu のサーバーがcurlのproxytunnelと競合しているため、403が返されるのだと思います。
上記 2 行のコードの最初の文を無効にすると、curl アクセスは通常に戻ります。 さらに、MAC OSX では、Curl バージョンを明示的に無効にする必要があります。
$curl --versioncurl 7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3プロトコル: tftp ftp telnet dict ldap http ファイルhttps ftps コードをコピー 他の ubuntu はまったく影響を受けず、何があっても使用できます。curl バージョン:
プロトコル: tftp ftp telnet dict ldap ldaps http file https ftps 機能: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
コピーコード MT ホスト上の centos も問題ありません。curl バージョン:
プロトコル: tftp ftp telnet dict ldap http file https ftps 機能: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
Copy code 完全にcurlのバージョンの問題ではないようですが、MAC OSXは確かに異なります。
設定されている場合に、curl が 403 エラーを返す別の理由があります。
コードをコピー
し、設定に従う必要があります:
そうしないと、http サーバーが HEAD コマンドを許可していないため、403 エラーが返されます。 参考: PHP での cURL リクエストに関するトラブル (http://forums.devshed.com/php-development-5/trouble-with-a-curl-request-in-php-445222.html)。
MAC OSX 上のカールが特別である理由は、この理由から除外されない可能性があります。
|