php curl 设置请求头,php的curl请求如何设置header参数

php的curl请求设置header参数的方法:首先使用【CURLOPT_HTTPHEADER】设置HTTP头字段的数组;然后使用一个默认只包含必要的头部字段的HTTP头。

978be1cab47daec04cfc0bdae4b7b347.png

php的curl请求设置header参数的方法:

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向一个URL发送HTTP请求的时候,它会使用一个默认只包含必要的头部字段(如:User-Agent, Host, and 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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值