通常の状況では、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 ページ