Curl for POST リクエストの CURLOPT_POSTFIELDS
curl を使用して POST リクエストを実行し、CURLOPT_POSTFIELDS オプションを指定する場合は、次の点を考慮することが重要です。適切なフォーマット。たとえば、「first」と「last」という 2 つのフィールドを投稿することを検討してください。
"first=John&last=Smith"
String Formatting
If文字列を POST データとして送信する場合は、適切な文字エンコードを確保するために URL エンコードする必要があります。次のコードはこれを示しています:
$data = urlencode("first=John&last=Smith");
配列のフォーマット
ただし、POST データが配列の場合は、「key => value」の後に続く必要があります。 format:
$data = [ 'first' => 'John', 'last' => 'Smith' ];
この場合、curl は Content-Type ヘッダーを自動的に次のように設定します。 "multipart/form-data".
Content-Type ヘッダー
互換性を高めるために、Content-Type ヘッダーを明示的に設定することをお勧めします。たとえば、「application/json」に設定するには:
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
Using http_build_query()
または、クエリ文字列を手動で構築する代わりに、PHP の http_build_query () 関数は次のようにすることができます使用:
$query = http_build_query($data, '', '&'); curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
この関数は、URL エンコーディングと適切な key=value フォーマットをシームレスに処理します。
以上がcURL POST リクエストで CURLOPT_POSTFIELDS を適切にフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。