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


在很多時候,我們都需要請求第三方的服務器來獲取一些數據,比如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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM