PHP如何通过Post请求发送Json数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP如何通过Post请求发送Json数据相关的知识,希望对你有一定的参考价值。

php中弄通过CURL在POST里发生JSON

首先要把数据转换成json格式,再通过curl方法调用接口并传参数

代码如下:

$keyword = urlencode($_POST['keyword']);
$parameters = json_encode(array('keyWord'=>$keyword,'areaCode'=>'*'));
$post_data['appToken'] = "323ds7674354fds32fdsda60173";//随便写的
$post_data['parameters'] = $parameters;
$url = 'http://serde.com/compadddvd/index';//随便写的
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//用post方法传送参数
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

之后就返回数据即可。

参考技术A 前端通过ajax发起post请求 后端查询到结果后使用json_decode()把数据转成json格式后 return返回 前端就可以通过回调函数拿到json数据

PHP如何接收json数据

  以前一直在写一些网站,很少涉及到接口的东西。最近公司在做一个平台,需要往接口上发送json数据。闲话少叙,直接上干货。

  在php中可以通过如下方式获取:

file_get_contents("php://input");

  

  分析:

 php做网页的表单提交

  早年网页表单的提交,都是用$_POST获取请求参数,实际上在http请求头中是用kv值的形式存在,如:

  技术分享
  php在接收到这种请求的时候,php底层系统会将这种字符串解析并存放进$_POST变量中,所以在php中就可以通过$_POST获取这些参数。
  

  上传文件http请求头

  Content-Type变成了multipart/form-data格式,这种格式的数据获取在php底层也做了处理,普通的非文件参数一样可以通过$_POST获取,文件参数可以通过$_FILES获取。

  

 php获取json格式数据

  json格式的数据指的的http头body的字符串是一个json格式的字符串。这个在PHP中无法通过$_POST取到,php底层没有对这种方式进行处理。获取到body内的数据后,直接json_decode一下就可以得到对象格式的数据了。

 

 

以上是关于PHP如何通过Post请求发送Json数据的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 HttpClient 在 POST 请求中将 JSON 数据作为正文发送

使用 Postman 通过原始 JSON 发送 POST 数据

PHP如何接收json数据

带有 JSON 正文的 POST 请求

记一次curl post请求数据被截断问题处理

如何使用 C# 在 POST 请求中发送 json 数据 [重复]