下面小编就为大家分享一篇php通过header发送自定义数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

发送header:

我们定义了三个参数,token、language、region,放入header发送过去

$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 '

';

print_r($data['post']);

echo '

';

echo 'Header data:';

echo '

';

print_r($data['header']);

echo '

';

/**

* 发送数据

* @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_前缀的数据读出。

$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发送自定义数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持Gxl网。

您可能感兴趣的文章:

php利用ob_start()清除输出和选择性输出的方法讲解

php实现的mongoDB单例模式操作类的相关讲解

PHP实现合并两个排序链表的方法讲解

PHP发送数据到指定方法,php通过header发送自定义数据方法_php技巧相关推荐

  1. R语言ggplot2可视化散点图、可视化两个数值变量之间的关系、使用geom_smooth函数基于loess方法拟合数据点之间的趋势关系曲线、自定义数据点的大小、色彩、添加主标题、副标题、题注信息

    R语言ggplot2可视化散点图.可视化两个数值变量之间的关系(Scatter plot).使用geom_smooth函数基于loess方法拟合数据点之间的趋势关系曲线.自定义数据点的大小.色彩.添加 ...

  2. php中函数的使用方法,php中header()函数的使用方法

    本文主要和大家分享php中header()函数的使用方法,主要以代码的方式和大家讲解,希望能帮助到大家.跳转页面 header('Location:'.$url); //Location和" ...

  3. R语言可视化散点图、气泡图、动态气泡图、数据点重合的散点图、数据点计数图、抖动数据点图、基于lm方法或者loess方法拟合数据点之间的趋势关系曲线、自定义数据点的大小、色彩、添加主标题、副标题、题注

    R语言可视化散点图.气泡图.动态气泡图.数据点重合的散点图.数据点计数图.抖动数据点图.基于

  4. R语言ggplot2可视化散点图、并使用geom_encircle函数自定义多边形圈定可视化图像中的指定区域、使用geom_smooth函数基于loess方法拟合数据点之间的趋势关系曲线

    R语言ggplot2可视化散点图.并使用geom_encircle函数自定义多边形圈定可视化图像中的指定区域(Scatterplot With Encircling).使用geom_smooth函数基 ...

  5. Python 数据存储读取,6千字搞定各种方法

    作者 | 老表 来源 | 简说Python 一.前言 二.专栏概要 三.做准备:将爬取到的数据存入csv和mysql.其他数据库 3.1 前情回顾 3.1 数据存入+读取csv 3.2 数据存入+读取 ...

  6. influxdb 插入数据_Influx Sql系列教程五:insert 添加数据

    接下来开始进入influxdb的curd篇,首先我们看一下如何添加数据,也就是insert的使用姿势 在进入本篇之前,对于不了解什么是retention policy, tag, field的同学,有 ...

  7. Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)

    一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...

  8. R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线、对指定范围的数据拟合曲线

    R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线.对指定范围的数据拟合曲线 目录

  9. C++|Java混合实验-java搭建post方法靶场,Qt发送请求获取数据

    目录 背景 演示 Java web源码 Qt源码 背景 post方法使用的地方有多,比如各个Http的API,涉及上传文件等,都是要使用post上传,在此模拟下post的表单上传数据的方式. 演示 首 ...

最新文章

  1. Java基础语法(一)注释,关键字,常量,变量,数据类型,标识符,数据类型转换...
  2. 分子特征数据库R包msigdb
  3. 使用设置报头x-Frame-Options限制iframe网页嵌套
  4. Spring+Hibernate配置多数据源
  5. BZOJ 1562 变换序列
  6. 剑指offer之36-40题解
  7. 关于内存泄漏检测问题,和大家一起分享
  8. Unity2021.2.0版本汉化
  9. 前端实战:从零到一实现H5拼图小游戏(附源码)
  10. 高等数学关于切线,法线,切平面,法平面的详细解释
  11. BitSet源码解析,位运算玩的真六
  12. 思岚A1激光雷达的测试(windows)
  13. Problem Set 2 Hangman Game字谜游戏
  14. 美国优秀教师对中国家长的建议
  15. TCP建连过程详解/160805
  16. 数据结构与算法(python):树结构
  17. [学]PHP爬虫框架phpspider
  18. 公司估值(贴现现金流量法DCF)
  19. 短信接入DSMP的业务分类说明(转)
  20. JNI(一) JNI - NDK-交叉编译

热门文章

  1. android tag定义快捷键,Android Studio快捷键生成TAG、Log.x日志输出介绍
  2. C语言课程设计报告输出杨辉三角,C语言学习:在屏幕上输出杨辉三角
  3. C++一天一个程序(二)
  4. Codeforces 671C Ultimate Weirdness of an Array 线段树 (看题解)
  5. ubuntu如何安装samba
  6. typescript主键自增长
  7. sharesdk短信验证码的集成
  8. 【转】android:DDMS查看Threads--不错
  9. VLAN的Hybrid和Trunk端口有何区别
  10. XML-RPC协议学习