1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php curl json post请求_php post请求发送json对象数据参数

php curl json post请求_php post请求发送json对象数据参数

时间:2022-04-13 08:40:49

相关推荐

php curl json post请求_php post请求发送json对象数据参数

网页中发送请求时,大部分情况都参数以键值组合发送数据的,而一些第三方如java开发的接口中需要发送post请求,请求参数为json类型。

既然要发送json数据,首页我们需要在请求头中定义数据类型为json,告诉服务器客服端发送过来的数据类型为json,设置请求头内容类型:Content-Type: application/json; charset=utf-8

php发送post请求的json参数代码,curl实现:<?php

//如果接口返回的数据为json,这里需要先定义数据类型为json

header("Content-type:application/json;charset=utf-8");

$url="";

$data=array('a'=>'test1','b'=>'test2','c'=>array('1','2','3'));

//这里需要注意的是这里php会自动对json进行编码,而一些java接口不自动解码情况(中文)

//$json_data=json_encode($data,JSON_UNESCAPED_UNICODE);

$json_data=json_encode($data);

//curl方式发送请求

$ch=curl_init();

//设置请求为post

curl_setopt($ch,CURLOPT_POST,1);

//请求地址

curl_setopt($ch,CURLOPT_URL,$url);

//json的数据

curl_setopt($ch,CURLOPT_POSTFIELDS,$json_data);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

//显示请求头

//curl_setopt($ch,CURLOPT_HEADER,1);

curl_setopt($ch,CURLINFO_HEADER_OUT,true);

//请求头定义为json数据

curl_setopt($ch,CURLOPT_HTTPHEADER,array(

'Content-Type:application/json;charset=utf-8',

'Content-Length:'.strlen($jsonStr)

)

);

$response=curl_exec($ch);

//echocurl_getinfo($ch,CURLINFO_HTTP_CODE);

//echocurl_getinfo($ch,CURLINFO_HEADER_OUT);

curl_close($ch);

//var_dump($response;)

echo$response;

php发送post请求json数据,curl函数的实现。同理,也可以使用file_get_contents函数进行实现post请求,也能实现上面的功能。

php接收post请求json参数代码,不能再用$_POST方式接收,会接收不到数据,因为现在的内容类型是Content-Type:application/json;charset=utf-8,使用$_POST接收的类型为application/x-www-form-urlencoded或multipart/form-data类型://接收post请求来的json数据

$data=file_get_contents('php://input');

//json转php数组

$data=json_decode($data,true);

var_dump($data);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。