1. 程式人生 > >PHP通過curl向其它服務器發請求並返回數據

PHP通過curl向其它服務器發請求並返回數據

false 其它 blank post data 方式 初始化 color 完成

在很多時候,我們都需要請求第三方的服務器來獲取一些數據,比如token,比如百度的主動推送,那麽我們的php如何實現向第三方服務器發請求呢?我們可以通過curl來實現

首先定義請求的url,然後創建httpHeader的頭,定義通過post方式發送請求的參數:

初始化curl:

 1 $url="URL地址";
 2   
 3 //然後創建httpHeader的頭:
 4   
 5 $httpHeader=createHttpHeader();
 6   
 7 //定義通過post方式發送請求的參數:
 8   
 9 $curlPost="userId=".$userId."&name=".$nickName
."&portraitUri=".$headImg; 10 11 //初始化curl: 12 13 $ch=curl_init();undefined

發送請求:

1 curl_setopt($ch,CURLOPT_URL,$url);
2 curl_setopt($ch,CURLOPT_HTTPHEADER,$httpHeader);
3 curl_setopt($ch,CURLOPT_HEADER,false);
4 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
5 curl_setopt($ch,CURLOPT_POST,1);
6 curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost); 7 curl_setopt($ch,CURLOPT_TIMEOUT,30); 8 curl_setopt($ch,CURLOPT_DNS_USE_GLOBAL_CACHE,false); 9 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);undefined

接收返回的數據:$data=curl_exec($ch);關閉curl:curl_close($ch);這樣就通過curl完成了一次post請求,並獲取到了返回的數據。

完整PHP源碼如下:

 1
$url="請求的URL地址"; 2 $httpHeader=createHttpHeader(); 3 $curlPost="userId=".$userId."&name=".$nickName."&portraitUri=".$headImg; 4 $ch=curl_init(); 5 curl_setopt($ch,CURLOPT_URL,$url); 6 curl_setopt($ch,CURLOPT_HTTPHEADER,$httpHeader); 7 curl_setopt($ch,CURLOPT_HEADER,false); 8 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); 9 curl_setopt($ch,CURLOPT_POST,1); 10 curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost); 11 curl_setopt($ch,CURLOPT_TIMEOUT,30); 12 curl_setopt($ch,CURLOPT_DNS_USE_GLOBAL_CACHE,false); 13 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 14 $data=curl_exec($ch); 15 curl_close($ch);undefined

PHP通過curl向其它服務器發請求並返回數據