ホームページ  >  記事  >  バックエンド開発  >  PHP 上の cURL ライブラリ

PHP 上の cURL ライブラリ

巴扎黑
巴扎黑オリジナル
2016-11-12 14:15:51989ブラウズ

PHP の cURL ライブラリには主に 2 つの Request と Guzzle があり、どちらも非常に複雑です。

リクエストは最初に cURL を使用します。cURL がない場合、トランスポートを手動で指定しない限り、fsockets は自動的に有効になります。

Guzzle は豊富なログ ライブラリのサポートとログ形式を備えており、コードの観点からは、プラグイン サブスクリプションを使用しており、高品質です。

cURL (少なくとも v3 のみ) のみをサポートし、ReactPHP が依存する Symfony の EventEmitter に依存します。

最近 (2014-03-28)、名前空間が実際に変更され、最初の 2 つの段落が 1 つの段落に減り、トップレベルの Guzzle も変更されたことがわかりました。ソース コード ディレクトリから削除されると意味がありません。そのため、他の一般的な PHP ライブラリとの上位互換性も矛盾もありません。

ここが重要なポイントです。Guzzle は通常はうまく機能しますが、昨日問題が見つかりました。支払い結果を確認するには、Alipay にアクセスする必要があります。この URL を呼び出すと、Guzzle は成功しませんが、Requests は成功します。

以下は、cURL コマンドについてです。connect-timeout と timeout-max (通常、後者はプログラム内でタイムアウトと呼ばれます) の 2 つのタイムアウトがあり、後者には前者と cURL のデフォルトの connect-timeout が含まれます。は 300 秒で、timeout-max には値が設定されていませんが、タイムアウトを設定しない場合は、包含により少なくとも 300 秒になります。

PHPのfsocketの場合、php.iniにdefault_socket_timeoutという設定項目があるため、デフォルト値は60秒のみです。

さらに、cURL はデフォルトでは http リダイレクトをサポートしておらず、-L オプション (パラメーターなし) を渡す必要があります。ただし、PHP と Python の使用経験に基づいて、少なくとも Guzzle のドキュメントでは、多くの cURL ライブラリがデフォルトでリダイレクトを有効にしています。有効になっていることが明確に示されているため、必要に応じて手動で閉じてください。

に基づく:

curl のデフォルトの接続タイムアウトは 300 秒です


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。