ホームページ  >  記事  >  バックエンド開発  >  PHP CURLリクエストのヘッダパラメータを設定する方法

PHP CURLリクエストのヘッダパラメータを設定する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-08-05 11:22:0110500ブラウズ

PHP の CURL リクエストのヘッダー パラメーターを設定する方法: 最初に [CURLOPT_HTTPHEADER] を使用して HTTP ヘッダー フィールドの配列を設定し、次にデフォルトで必要なヘッダー フィールドのみを含む HTTP ヘッダーを使用します。

PHP CURLリクエストのヘッダパラメータを設定する方法

PHP の CURL リクエストでヘッダー パラメータを設定する方法:

CURL リクエスト パラメータが設定されている場合、 CURLOPT_HTTPHEADER HTTP ヘッダー フィールドの配列を設定します。

形式: array('Content-type: text/plain', 'Content-length: 100')

簡単な例:

function http_post($sUrl, $aHeader, $aData){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $sUrl);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($aData));
    $sResult = curl_exec($ch);
    if($sError=curl_error($ch)){
        die($sError);
    }
    curl_close($ch);
    return $sResult;
}
 
$url = 'https://www.example.com;
$header = array('User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36');
$data = array();
$data = http_post($url,$header,$data);

curl を使用して送信する場合a URL は HTTP リクエストを送信するときに、デフォルトで必要なヘッダー フィールド (User-Agent、Host、Accept など) のみを含む HTTP ヘッダーを使用します。

ただし、場合によっては、デフォルトの HTTP ヘッダーをオーバーライドしたり、HTTP リクエストに新しいカスタム ヘッダー フィールドを追加したりすることが必要になる場合があります。たとえば、「HOST」フィールドをオーバーライドしてロード バランサーをテストしたり、「User-Agent」文字列を書き換えて特定のブラウザーになりすまして一部のアクセス制限を回避したりすることができます。

最近、12306 枚の鉄道チケットに関連するデータを調査しました。残りのチケット情報を取得したい場合は、ローカル リクエストで特定のブラウザになりすますように User-Agent" 文字列を設定する必要があります。そうしないと、リクエストは失敗します。

/**
 * 余票查询
 * leftTicketDTO.train_date: 时间
 * leftTicketDTO.from_station: 出发车站电码
 * leftTicketDTO.to_station: 目的车站电码
 * purpose_codes: 乘客类型(成人:ADULT,学生:0X00)
 * author 洋葱
 * @return bool|mixed
 */
function get_left_tickets(){
    $url = 'https://kyfw.12306.cn/otn/leftTicket/queryZ?';
//    $url = 'https://kyfw.12306.cn/otn/leftTicketPrice/query?';
    $param = [
        'leftTicketDTO.train_date' => '2019-02-13',
        'leftTicketDTO.from_station' => 'BJP',
        'leftTicketDTO.to_station' => 'SHH',
        'purpose_codes' => 'ADULT'
    ];
    $http_param = http_build_query($param);
    $url = $url.$http_param;
    //重写"User-Agent"字符串来假冒特定浏览器以解决访问限制的问题
    $header = array('User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36');
    $data = curl_request($url,true,'GET',null,$header);
    if($data){
        $data = json_decode($data,true);
    }
    return $data;
}

関連ビデオの推奨事項: PHP プログラミングの入門から習熟まで

以上がPHP CURLリクエストのヘッダパラメータを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。