1. 程式人生 > >PHP 模擬CURL分別GET POST進行HTTP請求

PHP 模擬CURL分別GET POST進行HTTP請求

在呼叫介面的過程中 我們需要模擬瀏覽器請求,這個時候作為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物件
		
	}