php通过header发送自定义数据方法


Posted in PHP onJanuary 18, 2018

本文将介绍如何通过header发送自定义数据。发送请求时,除了可以使用$_GET/$_POST发送数据,也可以把数据放在header中传输过去。

发送header:

我们定义了三个参数,tokenlanguageregion,放入header发送过去

<?php
$url = 'http://www.example.com';
$header = array('token:JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU','language:zh','region:GZ');
$content = array(
    'name' => 'fdipzone'
);
$response = tocurl($url, $header, $content);
$data = json_decode($response, true);
echo 'POST data:';
echo '<pre>';
print_r($data['post']);
echo '</pre>';
echo 'Header data:';
echo '<pre>';
print_r($data['header']);
echo '</pre>';
/**
 * 发送数据
 * @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;
}
?>

接收header

我们可以在$_SERVER中获取header数据,自定义的数据都是使用HTTP_作为前缀的,所以可以把HTTP_前缀的数据读出。

<?php
$post_data = $_POST;
$header = get_all_headers();
$ret = array();
$ret['post'] = $post_data;
$ret['header'] = $header;
header('content-type:application/json;charset=utf8');
echo json_encode($ret, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
/**
 * 获取自定义的header数据
 */
function get_all_headers(){
  // 忽略获取的header数据
  $ignore = array('host','accept','content-length','content-type');
  $headers = array();
  foreach($_SERVER as $key=>$value){
    if(substr($key, 0, 5)==='HTTP_'){
      $key = substr($key, 5);
      $key = str_replace('_', ' ', $key);
      $key = str_replace(' ', '-', $key);
      $key = strtolower($key);
      if(!in_array($key, $ignore)){
        $headers[$key] = $value;
      }
    }
  }
  return $headers;
}
?>

输出:

POST data:
Array
(
  [name] => fdipzone
)
Header data:
Array
(
  [token] => JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU
  [language] => zh
  [region] => GZ
)

以上这篇php通过header发送自定义数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
对Session和Cookie的区分与解释
Mar 16 PHP
PHP中static关键字原理的学习研究分析
Jul 18 PHP
Win下如何安装PHP的APC拓展
Aug 07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
Feb 27 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
php读取和保存base64编码的图片内容
Apr 22 PHP
php插件Xajax使用方法详解
Aug 31 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 #PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 #PHP
PHP获取二叉树镜像的方法
Jan 17 #PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 #PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 #PHP
PHP实现找出链表中环的入口节点
Jan 16 #PHP
详解thinkphp中的volist标签
Jan 15 #PHP
You might like
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
使用JQuery和s3captche实现一个水果名字的验证
2009/08/14 Javascript
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python写xml文件的操作实例
2014/10/05 Python
Python兔子毒药问题实例分析
2015/03/05 Python
基python实现多线程网页爬虫
2015/09/06 Python
python在非root权限下的安装方法
2018/01/23 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
python图形用户接口实例详解
2019/12/16 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
python 装饰器的基本使用
2021/01/13 Python
Html5自定义字体解决方法
2019/10/09 HTML / CSS
旅游项目开发策划书
2014/01/18 职场文书
教师考核材料
2014/05/21 职场文书
和谐社区口号
2014/06/19 职场文书
经典团队口号大全
2014/06/21 职场文书
社区文艺活动方案
2014/08/19 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
2016七夕情人节感言
2015/12/09 职场文书