① php如何通过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);
之后就返回数据即可。
② php用curl的post方法传递json包的时候,接受方是怎么获取的呢
假设POST的数据为:{"data":"abc"}
POST参数为:data
同样以PHP为例,接受并处理请求的相关代码如下:
<?php
extract($_POST);//将数组中的key摊成变量,并导入key对应的值
if(!empty($data))
{
$data=json_decode($data);//json字孙亏漏符串解码成json数据
var_mp($data);//打印json数据
//输出结果
object(stdClass)[1]
public'则烂data'空颂=>string'abc'(length=3)
}
③ php通过curl发送post json给https产生502错误问题!
curl_setopt(self::$ch,CURLOPT_USERAGENT,"Mozilla/5.0(Macintosh;IntelMacOSX10_10_2)AppleWebKit/600.3.18(KHTML,likeGecko)Version/8.0.3Safari/600.3.18");
加一个这个参数模拟浏览器,看看有没有作用
有些服务器非浏览器访问就会502