① 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