phpcurljson
发布时间: 2023-08-17 03:01:07
Ⅰ 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读取到API jason格式的内容,怎么样读取特定数组中的内容保存到自己的数据库中呢
$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';
$json=json_decode($json);
$a=$json->{'b'};
echo$a;//输出结果为1
把json数据拷贝出来放到文本里传上来。或者你自己转换成数组进行操作json_decode($json,true)
$json='{"a":1,"b":2,"c":3,"d":4,"e":5}';
$json=json_decode($json,true);
echo$json["b"];//输出结果为1
Ⅲ curl命令在PHP中怎么用
这是我项目中一直在用的一个方法
<?php
functioncurl($url,$params=array(),$header=array(),$timeout=180){
if(empty($url))return$url;
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);//请求url地址
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);//构造IP
if(!empty($params)&&count($params)>0){
curl_setopt($curl,CURLOPT_POST,true);
//RequestPayload格式数据
if(isset($params['is_json'])&&$params['is_json']===true){
unset($params['is_json']);
$params=json_encode($params);
}else{
$params=http_build_query($params);
}
curl_setopt($curl,CURLOPT_POSTFIELDS,$params);
}
//curl_setopt($curl,CURLOPT_HEADER,true);//是否返回响应头信息
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);//是否将结果返回
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);//是否重定向
//curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.106Safari/537.36');
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);//只信任CA颁布的证书
//curl_setopt($curl,CURLOPT_CAINFO,$cacert);//CA根证书(用来验证的网站证书是否是CA颁布)
//curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,2);//检查证书中是否设置域名,并且是否与提供的主机名匹配
//从证书中检查SSL加密算法是否存在
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
//curl_setopt($curl,CURLOPT_HTTPHEADER,array("Expect:"));
curl_setopt($curl,CURLOPT_IPRESOLVE,CURL_IPRESOLVE_V4);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,$timeout);//用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;
curl_setopt($curl,CURLOPT_TIMEOUT,$timeout);//用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间。如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。
//自动设置Referer
curl_setopt($curl,CURLOPT_AUTOREFERER,1);
//curl_setopt($curl,CURLOPT_COOKIEJAR,"D:phpStudyWWWcjcooBE66.tmp");////写入cookie信息
//setcookie('cookie_jar',$cookie_jar);//保存cookie路径
$data=curl_exec($curl);//执行
curl_close($curl);
return$data;
}
?>
Ⅳ 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
热点内容