1. 程式人生 > >curl模擬請求常用參數

curl模擬請求常用參數

accep quest 輸出 verify 會話 直接 delete 信息 返回

封裝一個curl模擬瀏覽器請求的函數,如下:
/**
 * curl模擬瀏覽器請求
 * @param unknown $url        請求的地址
 * @param array $params        請求地址所需要的參數
 * @param string $method     請求的類型
 * @param array $headers    http請求頭
 * @return string|mixed
 */
function curlRequest($url, array $params, $method=POST, array $headers=array())
{    
    
// 1.初始化一個curl會話資源 $ch = curl_init(); // 2.設置curl會話的選項 curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); // 強制使用 HTTP/1.0 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); // 發起連接前等待超時的時間,如果設置為0,則無限等待 curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 設置curl允許執行的最長秒數 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true
); // 是否將curl_exec()獲取的信息返回,而不是直接輸出 curl_setopt($ch, CURLOPT_ENCODING, gzip); // 設置HTTP請求頭中"Accept-Encoding: "的值 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 啟用時會將服務器返回的"Location: "放在header中遞歸的返回給服務器 curl_setopt($ch, CURLOPT_MAXREDIRS, 5); // 設置HTTP重定向的最大數量,這個選項是和CURLOPT_FOLLOWLOCATION一起使用的
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 是否需要進行服務端的SSL證書驗證 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 是否驗證服務器SSL證書中的公用名 curl_setopt($ch, CURLOPT_HEADER, false); // 是否抓取頭文件的信息 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 設置HTTP請求頭 curl_setopt($ch, CURLINFO_HEADER_OUT, true); switch (strtoupper($method)) { case POST: curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); break; case GET: $url = "{$url}?" . http_build_query($params); break; case DELETE: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, DELETE); $url = "{$url}?" . http_build_query($params); break; default: return invalid request method; } curl_setopt($ch, CURLOPT_URL, $url); // 設置需要請求的URL地址,也可以在 curl_init()函數中設置 // 3.執行curl會話 $response = curl_exec($ch); // 4.關閉curl會話,釋放資源 curl_close($ch); return $response; } 函數調用方式如下: $url = http://demo.dev/test; $params = array(id=>1,name=>zpt); $res = curlRequest($url,$params); echo $res;

curl模擬請求常用參數