PHP Curl json POST 不适合我
Posted
技术标签:
【中文标题】PHP Curl json POST 不适合我【英文标题】:PHP Curl json POST not working for me 【发布时间】:2015-08-26 09:34:06 【问题描述】:您好,我正在尝试使用 php 和 Curl 发送 POST 请求。我想发送一个类似这样的JSON
"json":
"testString":"test",
"testInt":1
我已经尝试过这段代码来完成这个
curl_init("domain.com");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, '"json":'.$data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
收到请求的我的 laravel 项目没有得到任何信息。
编辑:进一步解释,我的 laravel 项目收到了请求,但没有附加发布数据,没有。
【问题讨论】:
【参考方案1】:我不确定您为什么在 curl 中使用 CUSTOMREQUEST 选项。 请使用http://curl.haxx.se/libcurl/c/CURLOPT_POST.html
您也可以在您的 laravel 中通过调用 http://php.net/manual/en/function.http-get-request-body.php 来检查正文
【讨论】:
【参考方案2】:假设 $data_string:
$data_string = '"json":
"testString":"test",
"testInt":1
';
替换:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, '"json":'.$data_string);
与:
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
【讨论】:
如果 $data_string 是一个数组,你可以在 setopt 中用 json_encode 包装它以上是关于PHP Curl json POST 不适合我的主要内容,如果未能解决你的问题,请参考以下文章
php curl_init json 有个问题让我搞不清楚哪里出了问题
Curl 和 PHP - 如何通过 curl 通过 PUT、POST、GET 传递 json