PHP의 컬 요청에 대한 헤더 매개변수를 설정하는 방법: 먼저 [CURLOPT_HTTPHEADER]를 사용하여 HTTP 헤더 필드 배열을 설정한 다음 기본적으로 필요한 헤더 필드만 포함하는 HTTP 헤더를 사용합니다.
PHP의 컬 요청에서 헤더 매개변수를 설정하는 방법:
컬 요청 매개변수를 설정할 때 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을 사용하여 HTTP 요청을 URL로 보내면 기본값이 사용됩니다. 필요한 헤더 필드(예: 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 컬 요청에 대한 헤더 매개변수를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!