PHP中的Json+post+curl
在阅读我的实际问题之前,请不要结束这个问题。我见过很多相关的问题,但我仍然有。 我只想在PHP中使用PHP中的Json+post+curl,php,json,curl,Php,Json,Curl,在阅读我的实际问题之前,请不要结束这个问题。我见过很多相关的问题,但我仍然有。 我只想在PHP中使用CURL通过POST方法发送一个json\u编码的数组。当我将内容类型设置为application/json时,数据不会被发布。我收到空的post数组。当我删除内容类型行时,数据被发布,但不是json。 这是我的密码 $data = array('id' => $post['id'], 'action' => $post['action']); $post_data = http_
CURL
通过POST
方法发送一个json\u编码的
数组。当我将内容类型设置为application/json
时,数据不会被发布。我收到空的post
数组。当我删除内容类型行时,数据被发布,但不是json。
这是我的密码
$data = array('id' => $post['id'], 'action' => $post['action']);
$post_data = http_build_query($data);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
在这种情况下,我收到了空邮件。如果我注释掉行curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json'))代码>我将接收post数据,但不是json编码的。我想要json_编码的数组。谁能告诉我我做错了什么
最好的祝愿:您正在将查询字符串编码为json,而不是数组删除$post\u data=http\u build\u query($data)
并将$data
传递给json\u encode
$data = array('id' => $post['id'], 'action' => $post['action']);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
当然,这需要服务nedds支持json POST。尝试发送-n-accept原始POST请求,通过
<?php $postdata = file_get_contents("php://input"); ?>
您确定目标资源允许您请求响应格式吗?我正在向我的其他控制器发送请求。我怎样才能知道目标资源是否允许?当我删除http\u build\u query($data)
时,即使这样请求也不会被发布。空帖子什么是服务需要支持json帖子。
?我怎样才能知道它是否支持?@awaiskarni使用json\u decode(file\u get\u contents(“php://input“”,true)
以获取发布的数据。如果要检查发布的数据是否为json编码的?我正在检查是否(是对象(json\u decode($post))
,但现在我该怎么办?