Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Analyse des HTTP-Anfragebeispiels für die Curl-Simulation

Detaillierte Analyse des HTTP-Anfragebeispiels für die Curl-Simulation

little bottle
little bottlenach vorne
2019-04-23 11:01:314449Durchsuche

Der Hauptinhalt dieses Artikels ist die Verwendung von Curl zur Simulation von HTTP-Anfragen. Ich hoffe, dass er Ihnen helfen kann .

Einführung

Die offizielle Definition von cURL lautet: curl is a command line tool for transferring data with URL syntax, ein Befehlszeilentool , das URL-Syntaxregeln zum Übertragen von Daten verwendet.

PHP unterstützt die von Daniel Stenberg erstellte libcurl-Bibliothek, die eine Verbindung zu verschiedenen Servern herstellen und verschiedene Protokolle verwenden kann. Zu den derzeit von libcurl unterstützten Protokollen gehören http, https, ftp, gopher, telnet, dict, file und ldap. libcurl unterstützt außerdem HTTPS-Zertifikate, HTTP POST, HTTP PUT, FTP-Upload (kann auch über die FTP-Erweiterung von PHP durchgeführt werden), HTTP-Formular-Upload, Proxy, Cookies, Benutzername + Passwort-Authentifizierung.

Konzept

Verwendung von cURL in PHP

Bild:

cURL simuliert eine Get-Anfrage

/**
 * 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 simuliert eine Post-Anfrage

/**
 * post方式发送curl请求
 * @param string $url   请求的服务器地址
 * @param array $data   要发送的数据
 * @param array $header 请求头数据
 * @param int $timeout  超时时间
 * @return mixed
 * @author itbsl<itbsl@foxmail.com>
 */
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;
}

Verwandte Tutorials: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Analyse des HTTP-Anfragebeispiels für die Curl-Simulation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen