编辑:事实证明数据发送得很好,但是在 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')。
为什么我的内容类型没有正确通过?
如果有帮助,这是一个示例输出:
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)