Heim > Backend-Entwicklung > PHP-Problem > So legen Sie Header-Parameter für eine PHP-Curl-Anfrage fest

So legen Sie Header-Parameter für eine PHP-Curl-Anfrage fest

coldplay.xixi
Freigeben: 2023-03-03 20:00:02
Original
10690 Leute haben es durchsucht

So legen Sie Header-Parameter für die Curl-Anfrage von PHP fest: Verwenden Sie zuerst [CURLOPT_HTTPHEADER], um ein Array von HTTP-Header-Feldern festzulegen, und verwenden Sie dann einen HTTP-Header, der standardmäßig nur die erforderlichen Header-Felder enthält.

So legen Sie Header-Parameter für eine PHP-Curl-Anfrage fest

So legen Sie Header-Parameter in der Curl-Anfrage von PHP fest:

Wenn Curl-Anfrageparameter festgelegt sind, CURLOPT_HTTPHEADERlegen Sie das Array der HTTP-Header-Felder fest.

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

Einfaches Beispiel:

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);
Nach dem Login kopieren

Wenn Sie Curl verwenden, um eine HTTP-Anfrage an eine URL zu senden, wird eine Standardeinstellung verwendet HTTP-Header, die nur notwendige Header-Felder enthalten (z. B. User-Agent, Host und Accept).

Aber in manchen Fällen möchten Sie vielleicht die Standard-HTTP-Header überschreiben oder ein neues benutzerdefiniertes Header-Feld in einer HTTP-Anfrage hinzufügen. Beispielsweise möchten Sie möglicherweise das Feld „HOST“ überschreiben, um einen Load Balancer zu testen, oder einen bestimmten Browser imitieren, indem Sie die Zeichenfolge „User-Agent“ umschreiben, um einige Zugriffsbeschränkungen zu umgehen.

Kürzlich die Daten zu 12306 Bahntickets recherchiert. Wenn Sie die restlichen Ticketinformationen erfassen möchten, muss die lokale Anfrage die Zeichenfolge „User-Agent“ so festlegen, dass sie sich als ein bestimmter Browser ausgibt, andernfalls schlägt die Anfrage fehl:

/**
 * 余票查询
 * 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;
}
Nach dem Login kopieren

Verwandt Videoempfehlungen: PHP-Programmierung vom Einstieg bis zum Master

Das obige ist der detaillierte Inhalt vonSo legen Sie Header-Parameter für eine PHP-Curl-Anfrage fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage