編集:データは問題なく送信されていたことがわかりましたが、PHP で本文を表示すると正しく動作しませんでした。詳細については、私の回答を参照してください。
json データをサーバーに投稿しようとしています。必要なのは、コンテンツ タイプを json にし、本文に json 形式の文字列を含めることだけです。私の問題は、コンテンツ タイプが text/html のままであり、何を試してもそのコンテンツ タイプを変更できないことです。私は多数のスタックオーバーフローの回答を読みましたが、それらはすべて機能するはずですが、機能しません。私のコードは以下です。
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_exec($ch);
受信側では、getallheaders と get_file_contents('file://phpinput') を出力するだけです。
content-type が正しく処理されないのはなぜですか?
これが役立つ場合の出力例を次に示します。
string 'HTTP/1.1 200 OK
Date: Wed, 17 Apr 2013 16:24:56 GMT
Server: Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.8r DAV/2 PHP/5.4.4
X-Powered-By: PHP/5.4.4
Content-Length: 71
Content-Type: text/html
Array{"level1a":{"level2":{"a":2,"b":3}},"level2b":["111","333","999"]}' (length=273)