使用CURL實現GET和POST方式請求


CURL請求,支持GET和POST兩種方式,默認為GET方式,如果傳第二個參數則為POST方式請求,設置了超時時間,避免程序卡死。

/** 使用curl方式實現get或post請求 @param $url 請求的url地址 @param $data 發送的post數據 如果為空則為get方式請求 return 請求后獲取到的數據 */ function curlRequest($url,$data = ''){ $ch = curl_init(); $params[CURLOPT_URL] = $url; //請求url地址 $params[CURLOPT_HEADER] = false; //是否返回響應頭信息 $params[CURLOPT_RETURNTRANSFER] = true; //是否將結果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_TIMEOUT] = 30; //超時時間 if(!empty($data)){ $params[CURLOPT_POST] = true; $params[CURLOPT_POSTFIELDS] = $data; } $params[CURLOPT_SSL_VERIFYPEER] = false;//請求https時設置,還有其他解決方案 $params[CURLOPT_SSL_VERIFYHOST] = false;//請求https時,其他方案查看其他博文 curl_setopt_array($ch, $params); //傳入curl參數 $content = curl_exec($ch); //執行 curl_close($ch); //關閉連接 return $content; }

對於某些服務器可能會遇到不兼容的情況,需要將數據拼裝成字符串進行發送,可以使用如下函數:

function getPost($url,$vars){ $ch = curl_init(); $params[CURLOPT_URL] = $url; //請求url地址 $params[CURLOPT_HEADER] = false; //是否返回響應頭信息 $params[CURLOPT_RETURNTRANSFER] = true; //是否將結果返回 $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向 $params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'; $postfields = ''; foreach ($vars as $key => $value){ $postfields .= urlencode($key) . '=' . urlencode($value) . '&'; } $params[CURLOPT_POST] = true; $params[CURLOPT_POSTFIELDS] = $postfields; //解決方案一 禁用證書驗證 $params[CURLOPT_SSL_VERIFYPEER] = false; $params[CURLOPT_SSL_VERIFYHOST] = false; curl_setopt_array($ch, $params); //傳入curl參數 return curl_exec($ch); //執行 }


免責聲明!

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



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