php使用curl发送请求

 

source code:

  
  
  
  
  1. /** 
  2.      * 执行一个 HTTP 请求 
  3.      * 
  4.      * @param string    $url    执行请求的URL 
  5.      * @param mixed $params 表单参数 
  6.      *                          可以是array, 也可以是经过url编码之后的string 
  7.      * @param mixed $cookie cookie参数 
  8.      *                          可以是array, 也可以是经过拼接的string 
  9.      * @param string    $method 请求方法 post / get 
  10.      * @param string    $protocol http协议类型 http / https 
  11.      * @return array 结果数组 
  12.      */ 
  13.     static public function makeRequest($url$params$cookie$method='post'$protocol='http'
  14.     {        
  15.         $query_string = self::makeQueryString($params);     
  16.         $cookie_string = self::makeCookieString($cookie);    
  17.         $ch = curl_init(); 
  18.         if ('get' == $method
  19.         { 
  20.             curl_setopt($ch, CURLOPT_URL, "$url?$query_string"); 
  21.         } 
  22.         if ($protocol == 'https'){ 
  23.             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
  24.             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
  25.         } 
  26.         else  
  27.         {    
  28.             curl_setopt($ch, CURLOPT_URL, $url); 
  29.             curl_setopt($ch, CURLOPT_POST, true); 
  30.             curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string); 
  31.         } 
  32.         curl_setopt($ch, CURLOPT_HEADER, false); 
  33.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
  34.         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); 
  35.     //  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  
  36.         // disable 100-continue 
  37.         curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); 
  38.  
  39.         if (!emptyempty($cookie_string)) 
  40.         { 
  41.             curl_setopt($ch, CURLOPT_COOKIE, $cookie_string); 
  42.         } 
  43.          
  44.         if ('https' == $protocol
  45.         { 
  46.             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
  47.             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
  48.         } 
  49.          
  50.         $ret = curl_exec($ch); 
  51.         $err = curl_error($ch); 
  52.                  
  53.         if (false === $ret || !emptyempty($err)) 
  54.         { 
  55.             $errno = curl_errno($ch); 
  56.             $info = curl_getinfo($ch); 
  57.             curl_close($ch); 
  58.  
  59.             return array
  60.                 'result' => false, 
  61.                 'errno' => $errno
  62.                 'msg' => $err
  63.                 'info' => $info
  64.             ); 
  65.         } 
  66.          
  67.         curl_close($ch); 
  68.  
  69.         return array
  70.             'result' => true, 
  71.             'msg' => $ret
  72.         ); 
  73.                  
  74.     } 

 

 

你可能感兴趣的:(curl,发送http,PHPcurl)