ホームページ  >  記事  >  バックエンド開発  >  CURL シミュレーションの http リクエスト例の詳細な分析

CURL シミュレーションの http リクエスト例の詳細な分析

little bottle
little bottle転載
2019-04-23 11:01:314522ブラウズ

この記事の主な内容は、curl を使用して HTTP リクエストをシミュレートすることです。一定の参考値があります。必要な友人は参照してください。お役に立てれば幸いです。 。

はじめに

cURL の 正式な定義は次のとおりです: curl は URL 構文 を使用してデータを転送するためのコマンド ライン ツールです。つまり、 は次のように使用します。データを転送するためのコマンド ライン ツールの URL 構文ルール

PHP は、Daniel Stenberg が作成した libcurl ライブラリをサポートしています。このライブラリは、さまざまなサーバーに接続して通信し、さまざまなプロトコルを使用できます。 libcurl で現在サポートされているプロトコルには、http、https、ftp、gopher、telnet、dict、file、ldap などがあります。 libcurl は、HTTPS 証明書、HTTP POST、HTTP PUT、FTP アップロード (PHP の FTP 拡張機能を使用して完了することもできます)、HTTP フォームベースのアップロード、プロキシ、Cookie、ユーザー名とパスワードの認証もサポートしています。

コンセプト

PHP での cURL の使用

図:

# #cURL取得リクエストをシミュレートします

/**
 * 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方式发送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;
}

関連チュートリアル: PHP ビデオ チュートリアル

以上がCURL シミュレーションの http リクエスト例の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。