PHP 模擬CURL分別GET POST進行HTTP請求
阿新 • • 發佈:2019-01-03
在呼叫介面的過程中 我們需要模擬瀏覽器請求,這個時候作為PHP開發者,我們可以利用CURL進行模擬HTTP請求
1、curl以POST方式請求https協議介面
/** * 傳入json資料進行HTTP POST請求 * * @param string $url $data_string * @return string */ public static function http_post($url,$data_string,$timeout = 60) { //curl驗證成功 $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//// 跳過證書檢查 curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string) )); $result = curl_exec($ch); if (curl_errno($ch)) { print curl_error($ch); } curl_close($ch); return $result; }
2、curl以GET方式請求https協議介面
/** * 傳入json資料進行HTTP Get請求 * * @param string $url $data_string * @return string */ public function http_get($url) { $curl = curl_init(); // 啟動一個CURL會話 curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密演算法是否存在 $tmpInfo = curl_exec($curl); //返回api的json物件 //關閉URL請求 curl_close($curl); return $tmpInfo; //返回json物件 }