获取请求header中指定字段的值
1private function getHeader($name) {//获取请求头中$name的值
2$name = 'HTTP_' . $name;
3foreach ($_SERVER as$key => $value) {
4if($key == $name) {
5return$value;
6 }
7 }
8return null;
9 }
若指定字段不存在则返回 null
需要特别注意的是,如果我们是⽤ nginx 提供反向代理服务,则需要在 f 中将 underscores_in_headers 设置成 on (如图)才能在请求的 headers 中带⾃定义带下划线的字段,否则 headers 中的⾃定义带下划线字段会丢失。
例:
1$header = array('token:JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU','language:zh','region:GZ', 'user:xiao01', 'AMIS_USER:xiao01');
2
3$content = array(
4 'name' => 'fdipzone'
5 );
6
7echo tocurl($api, $header, $content);
8
9/**
10 * 发送数据
11 * @param String $url 请求的地址
12 * @param Array $header ⾃定义的header数据
13 * @param Array $content POST的数据
14 * @return String
15*/
16function tocurl($url, $header, $content){
17$ch = curl_init();
18if(substr($url,0,5)=='https'){
19 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
20 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
21 }
22 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
23 curl_setopt($ch, CURLOPT_URL, $url);
24 curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
25 curl_setopt($ch, CURLOPT_POST, true);
26 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
27$response = curl_exec($ch);
28if($error=curl_error($ch)){
29die($error);
30 }
31 curl_close($ch);
32return$response;
33 }
若没有将 f 中的 underscores_in_headers 为 on 的话,nginx 不会将 header 中的 AMIS_USER 字段传到我们的后端接⼝中,也就⽆法⽤上⾯的 getHeader 获取到 AMIS_USER 字段的值了。
$header = array('token:JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU','language:zh','region:GZ', 'user:xiao01', 'AMIS_USER:xiao01'); $content = array( 'name' => 'fdipzone');
echo tocurl($api, $header, $content);
/** * 发送数据 * @param String $url 请求的地址 * @param Array $header ⾃定义的header数据 * @
param Array $content POST的数据 * @return String */function tocurl($url, $header, $content){ $ch = curl_init(); if(substr($url,0,5)=='https'){ curl_setopt($ch,
CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL 加密算法是否存在 } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch,
CURLOPT_POSTFIELDS, http_build_query($content)); $response = curl_exec($ch); if($error=curl_error($ch)){ die($error); } curl_close($ch); return $response;}
php中header是什么意思
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论