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

coldplay.xixi
リリース: 2023-03-03 20:00:02
オリジナル
10683 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート