开发者社区> 问答> 正文

关于php中curl模拟post发送json并接收json问题

具体描述:
本地模拟请求服务器数据,请求数据格式为json,服务器返回数据也是json。
使用ajax模拟都成功了

<script> $.ajax({ type: "POST", crossDomain: true, url: 'http://*******', data: {'command':'test'}, success: function(e) { console.log(e);//这里log的是json }, dataType: 'json' }); </script>
curl就没有成功
$url = 'http://*******';
$param = "{'command':'test'}";
$ch = curl_init($url); //请求的URL地址
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);//$data JSON类型字符串
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($param)));
$data = curl_exec($ch);//这里的data打印出来是空的

展开
收起
爵霸 2016-03-05 11:21:29 4233 0
1 条回答
写回答
取消 提交回答
  • $param = "{'command':'test'}";
    这一行改成PHP数组键值的形式。
    因为curl模拟POST的时候,POST的参数应该是以数组的形式传参。

    2019-07-17 18:53:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载