php的curl请求如何设置header参数
程序员文章站
2022-03-07 14:44:00
...
php的curl请求设置header参数的方法:首先使用【CURLOPT_HTTPHEADER】设置HTTP头字段的数组;然后使用一个默认只包含必要的头部字段的HTTP头。
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; }
相关视频推荐:PHP编程从入门到精通
以上就是php的curl请求如何设置header参数的详细内容,更多请关注其它相关文章!
上一篇: mysql是什么数据库
下一篇: php curl如何设置ip
推荐阅读
-
php的curl携带header请求头信息实现http访问的方法
-
PHP不用pthreads如何同时发起100个curl请求获取数据,并且保持主“线程”不断的向文件写入?
-
100分求助:PHP如何获取PUT和DELETE请求的参数
-
http - php,curl如何查看发出的post请求的信息
-
php curl 请求中如何携带header参数
-
php curl 作采集时的一些参数设置
-
http - php,curl如何查看发出的post请求的信息
-
php利用curl发起get请求时url的参数问题
-
php如何使用curl方法请求Java接口?php用curl方法请求Java接口的两种方法
-
有关注smarty3的吗,“Smarty3.X:抛弃原有语法,全面使用原生PHP语法”,但不知道如何设置参数