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 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);
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; }
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!