curl設定CURLOPT_HTTPHEADERリクエストヘッダ


curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));

または配列形式の場合:
CURLOPT_HTTPHEADER => array('Content-Type: application/x-www-form-urlencoded')

Content-Type
アプリケーション/json(実はtext/plainと同じで、jsonは受信者に直接json復号ができることを伝えるためだけ)はpostman上のRAWに対応する.
アプリケーション/x-www-form-urlencodedはformフォーム(enctypeパラメータ)のデフォルトの符号化方式であり、パラメータは&シンボルで接続されている.getリクエストはURLの後ろに直接つづり、postリクエストパラメータはbodyの中にあり、key=value&key=valueが必要です.つまりhttp_build_query
Multipart/form-data formがファイルをアップロードする必要がある場合、enctypeをこの属性値に設定します.curlはmultipart/form-dataという方法で渡す場合、パラメータは配列のフォーマット(配列フォーマットは自動的にmultipart/form-data符号化に変わります)で、ファイルはphpが5,5未満のバージョンの場合、@ファイルの全パス表示を使用します.リクエストヘッダを追加しない場合のデフォルトはこのフォーマットですが、php 5より大きい場合です.5のバージョンでは、curlfileメソッドを使用して、特別なタイプのオブジェクトをnewする必要があります(curl_file_create('ファイルのフルパス').次に、このオブジェクトをリクエストのパラメータに入れます.
ヘッダを付けないとデフォルトはmultipart/form-data形式です!
Multipart/form-dataはarray形式で転送され、content-typeはx-www-form-urlencodedの場合key=value&key=value(キー値ペア)の形式で転送されます.
curl:受信側で、POSTを使用するとデータが受信できないことがわかりました.もちろん_REQUESTも同じですが、私たちが伝えたJSONデータはどこへ行きましたか?伝達されたJSONデータを受信するにはどうすればいいですか?$GLOBALS['HTTP_RAW_POST_DATA];
file_get_contents('php://input');