Maison > développement back-end > Problème PHP > Comment définir les paramètres d'en-tête pour la requête php curl

Comment définir les paramètres d'en-tête pour la requête php curl

coldplay.xixi
Libérer: 2023-03-03 20:00:02
original
10783 Les gens l'ont consulté

Comment définir les paramètres d'en-tête pour la requête curl de PHP : utilisez d'abord [CURLOPT_HTTPHEADER] pour définir un tableau de champs d'en-tête HTTP ; puis utilisez un en-tête HTTP qui ne contient que les champs d'en-tête nécessaires par défaut.

Comment définir les paramètres d'en-tête pour la requête php curl

Comment définir les paramètres d'en-tête dans la requête curl de PHP :

Lorsque les paramètres de la requête curl sont définis, CURLOPT_HTTPHEADER est défini Tableau de champs d'en-tête HTTP.

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

Exemple simple :

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);
Copier après la connexion

Lorsque vous utilisez curl pour envoyer a Lorsqu'une URL envoie une requête HTTP, elle utilise un en-tête HTTP qui contient par défaut uniquement les champs d'en-tête nécessaires (tels que User-Agent, Host et Accept).

Mais dans certains cas, vous souhaiterez peut-être remplacer les en-têtes HTTP par défaut ou ajouter un nouveau champ d'en-tête personnalisé dans une requête HTTP. Par exemple, vous souhaiterez peut-être remplacer le champ « HOST » pour tester un équilibreur de charge, ou usurper l'identité d'un navigateur spécifique en réécrivant la chaîne « User-Agent » pour contourner certaines restrictions d'accès.

Récemment recherché les données liées à 12306 billets de train. Lorsque vous souhaitez capturer les informations restantes sur le billet, la requête locale doit définir la chaîne "User-Agent" pour emprunter l'identité d'un navigateur spécifique, sinon la requête échouera :

/**
 * 余票查询
 * 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;
}
Copier après la connexion

Recommandations vidéo associées : Programmation PHP du débutant au compétent

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal