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

 

相关文章