发送get/post请求
后端笔记 2017-09-01 21:11:50
PHP Code复制内容到剪贴板
  1.     /** 
  2.      * 发送HTTP请求 
  3.      * 
  4.      * @param string $url 请求地址 
  5.      * @param string $method 请求方式 GET/POST 
  6.      * @param string $refererUrl 请求来源地址 
  7.      * @param array $data 发送数据 
  8.      * @param string $contentType 
  9.      * @param string $timeout 
  10.      * @param string $proxy 
  11.      * @return boolean 
  12.      */  
  13.     function send_request($url$data$method = 'GET'$refererUrl = ''$contentType = ''$timeout = 30, $proxy = false)  
  14.     {  
  15.   
  16. //        return $url;  
  17.         $ch = null;  
  18.         if ('POST' === strtoupper($method)) {  
  19.   
  20.             $ch = curl_init ();  
  21.             curl_setopt($ch, CURLOPT_URL, $url);  
  22.             curl_setopt($ch, CURLOPT_POST, 1);  
  23.             curl_setopt($ch, CURLOPT_HEADER, 0);  
  24.             //curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);  
  25.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  26.             //curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);  
  27.             curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  
  28.             if ($refererUrl) {  
  29.                 curl_setopt($ch, CURLOPT_REFERER, $refererUrl);  
  30.             }  
  31.             if ($contentType) {  
  32.                 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:' . $contentType));  
  33.             }  
  34.   
  35.             curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
  36.   
  37.         } else if ('GET' === strtoupper($method)) {  
  38.             if($data){  
  39.                 if (is_string($data)) {  
  40.   
  41.                     $real_url = $url . (strpos($url'?') === false ? '?' : '&') . $data;  
  42.   
  43.   
  44.                 } else {  
  45.   
  46.                     $real_url = $url . (strpos($url'?') === false ? '?' : '&') . http_build_query($data);  
  47.   
  48.                 }  
  49.             }else{  
  50.                 $real_url = $url;  
  51.             }  
  52.   
  53.   
  54.             $ch = curl_init($real_url);  
  55.             curl_setopt($ch, CURLOPT_HEADER, 0);  
  56.             if ($contentType) {  
  57.                 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:' . $contentType));  
  58.             }  
  59.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  60.             curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  
  61.             if ($refererUrl) {  
  62.                 curl_setopt($ch, CURLOPT_REFERER, $refererUrl);  
  63.             }  
  64.         } else {  
  65.             $args = func_get_args();  
  66.             return false;  
  67.         }  
  68.   
  69.   
  70.         if ($proxy) {  
  71.             curl_setopt($ch, CURLOPT_PROXY, $proxy);  
  72.         }  
  73.         $ret = curl_exec($ch);  
  74.   
  75.         $info = curl_getinfo($ch);  
  76.         $contents = array(  
  77.             'method' => $method,  
  78.             'send' => $data,  
  79.             'url' => $url,  
  80.             'ret' => $ret,  
  81.             'http' => $info,  
  82.         );  
  83.   
  84.         curl_close($ch);  
  85.         return $contents;  
  86.     }  

 

 

 

 

本文来自于:http://www.yoyo88.cn/note/backend/142.html

Powered by yoyo苏ICP备15045725号