curl模擬http請求範例詳析

2020-07-16 10:05:31

本文的主要內容是用curl模擬HTTP請求,具有一定的參考價值,有需要的朋友可以看看,希望可以幫助到你。

簡介

cURL的官方定義為:curl is a command line tool for transferring data with URL syntax,即使用URL語法規則來傳輸資料的命令列工具

PHP 支援 Daniel Stenberg 建立的 libcurl 庫,能夠連線通訊各種伺服器、使用各種協定。libcurl 目前支援的協定有 http、https、ftp、gopher、telnet、dict、file、ldap。 libcurl 同時支援 HTTPS 證書、HTTP POST、HTTP PUT、 FTP 上傳(也能通過 PHP 的 FTP 擴充套件完成)、HTTP 基於表單的上傳、代理、cookies、使用者名稱+密碼的認證。

概念

在PHP中使用cURL

圖示:

cURL模擬get請求

/**
 * get方式傳送curl請求
 * @param string $url    請求伺服器地址
 * @param array $header  請求頭資料
 * @param int $timeout   超時時間
 * @return mixed
 * @author itbsl
 */
function curl_get($url, $header=[], $timeout=30) {

    //初始化curl
    $curl = curl_init();

    //設定curl(請求的伺服器地址)
    //引數1: curl資源
    //引數2: 設定項名稱
    //引數3: 設定項的值
    curl_setopt($curl, CURLOPT_URL, $url);

    //跳過安全證書驗證
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  // 從證書中檢查SSL加密演算法是否存在
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  // 跳過證書檢查

    //設定獲取的資訊以檔案流的形式返回,而不是直接輸出
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);

    curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);

    //發出請求
    $result = curl_exec($curl);

    //關閉curl資源
    curl_close($curl);

    return $result;
}

cURL模擬post請求

/**
 * post方式傳送curl請求
 * @param string $url   請求的伺服器地址
 * @param array $data   要傳送的資料
 * @param array $header 請求頭資料
 * @param int $timeout  超時時間
 * @return mixed
 * @author itbsl<[email protected]>
 */
function curl_post($url, $data=[], $header=[], $timeout=30) {

    //初始化curl
    $curl = curl_init();

    //設定curl(請求的伺服器地址)
    //引數1: curl資源
    //引數2: 設定項名稱
    //引數3: 設定項的值
    curl_setopt($curl, CURLOPT_URL, $url);

    //跳過安全證書驗證
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  // 從證書中檢查SSL加密演算法是否存在
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  // 跳過證書檢查

    //設定獲取的資訊以檔案流的形式返回,而不是直接輸出
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);

    //設定請求方式為post請求
    curl_setopt($curl, CURLOPT_POST, true);

    //設定post方式提交時攜帶的資料
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

    curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);

    //發出請求
    $result = curl_exec($curl);

    //關閉curl資源
    curl_close($curl);

    return $result;
}

相關教學:PHP視訊教學

以上就是curl模擬http請求範例詳析的詳細內容,更多請關注TW511.COM其它相關文章!