我收到了一个 JSON,我可以使用
php://input
接收它,并且我需要将其发布回不同的 URL,但我不确定如何格式化它。这是我收到它的方式:
> $updates =
> file_get_contents("php://input");
我可以
json_decode
它然后解析出数组,以便它适合正常的类似 POST 的请求,例如 hello=world&stack=overflow
等。但是是否可以将 JSON 传递到这样的卷曲帖子中:
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $updates);
然后客户端可以
php://input
再次获取数据吗?我之所以问是因为客户说他没有收到数据,可能是他没有正确设置。我注意到,当您通过命令行执行类似操作时,必须在命令中包含 -H ,以便数据被解释为正常的 POST,也许我需要设置一个 libcurl CURLOPT?
好吧,伙计们,我已经弄清楚了!
要以不同的内容类型(即 application/json 或 text/xml)发送帖子,请添加此 setopt 调用
curl_setopt($ch, CURLOPT_HTTPHEADERS,数组('内容类型: 应用程序/json'));
您也可以使用
curl --silent --request POST --header 'Content-Type: application/json' \
--data $updates \
-k http://URL_to_which_you_want_to_post