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
熱點內容