PHP_PHP チュートリアルの CURL の CURLOPT_POSTFIELDS パラメータの使用法の詳細

WBOY
リリース: 2016-07-13 10:35:42
オリジナル
887 人が閲覧しました

通常の状況では、CURL を使用して POST データを送信する場合、次のように記述することに慣れています:

コードをコピー コードは次のとおりです:
curl_setopt( $ch, CURLOPT_POSTFIELDS,$post_data);

しかし、この書き方はあまり役に立たない場合があり、サーバーから 500 エラーが返される可能性があります。しかし、Socket を使用してサーバーにデータを送信しようとすると、非常に正しい結果が得られます。
たとえば、サーバー上に次の PHP ファイルがあります:
コードをコピーします コードは次のとおりです:

CURL を使用する場合この前提でサーバーにデータを送信すると、次のような結果が得られる可能性がありますが、これは理想的な結果ではありません:
コードをコピー コードは次のとおりです:
[CONTENT_TYPE] ] => multipart/form-data; border =——————————-f924413ea122

ただし、$post_data の代わりに http_build_query($post_data) を使用して、この PHP スクリプトにデータを送信すると、上記とは異なる結果が得られます。これが私たちの理想的な結果です:
コードをコピーします コードは次のとおりです:
[CONTENT_TYPE] => application/x-www-form-urlencoded

ではありません。上記の例からは、CURL とパラメーターを使用していることが分かりにくいですが、それがデータの場合、データをサーバーに送信するときに、HTTP ヘッダーは Content_type: application/x-www-form-urlencoded を送信します。これは、通常の Web ページ
でフォームを送信するときにブラウザによって送信されるヘッダーです。そして multipart/form-data これはファイルのアップロードに使用されるフォームであることがわかります。境界区切り文字を含めると、多くのバイトが追加されます。
公式マニュアルには次のように書かれています:
コードをコピーします コードは次のとおりです:
HTTP「POST」操作で投稿する完全なデータ ファイルを投稿するには、ファイル名の前に @ を付けて、これは、「para1=val1¶2=val2&…」のような URL エンコードされた文字列として渡すことも、フィールド名をキーとして、フィールド データを値として持つ配列として渡すこともできます。値が配列の場合、Content-Type ヘッダーは次のようになります。 multipart/form-data に設定します。

投稿データを提供するために配列を使用する場合、CURL コンポーネントはおそらく、ファイルをアップロードするための @filename 書き込みメソッドと互換性があります。デフォルトでは、content_type は multipart/form-data に設定されます。 。ほとんどのサーバーには影響しませんが、互換性のないサーバーがまだいくつかあります。
いくつかの要約を経て、最終的に結論に達しました。ファイルをアップロードする必要がない場合は、post によって送信されたデータに対して http_build_query 処理を実行してから送信することを試みます。これにより、互換性が向上し、リクエスト データ パケットが小さくなります。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/742451.html技術記事通常の状況では、CURL を使用して POST データを送信するときは、次のように記述することに慣れています。 次のようにコードをコピーします。curl_setopt( $ch, CURLOPT_POSTFIELDS,$post...
)
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!