使用PHP的http请求客户端guzzle如何添加请求头
一.目录
- 遇到的问题
- guzzle基础知识
- 添加请求头的两种方式
二.遇到的问题
我们的一个yii的项目,需要调用一个第三方的接口,这个接口需要请求头需要携带token信息,因此,在发送http请求时,需要在请求头上对应的token。如下图:
我们的项目请求第三方,使用的是guzzle组件,做了记录,以防以后查询使用
三.guzzle基础知识
Guzzle是一个使得利用PHP实现发送HTTP 请求,方便和web service集成的PHP 客户端模拟组件。
Guzzle介绍
简单的接口构建query string,POST requests,streaming large uploads/downloads,使用HTTP cookies,上传json data等。
可以使用相同的接口来发送同步和异步的请求。
使用PSR-7 interface for requests, response,stream.这允许你使用其他的PSR-7兼容的库和Guzzle一起工作
将底层的HTTP传输层抽象屏蔽,允许你编写环境和传输协议无关的代码,即:再也没有对cURL,PHP streams, sockets,或者non-blocking event loops强依赖的代码。
中间件系统允许你增强你的客户端行为。
Post/Get请求
发送请求前,我们需要实例化本地下载的guzzleuse GuzzleHttp\Client;$client = new Client([//跟域名'base_uri' => 'http://localhost/test',// 超时,可设置可不设置'timeout' => 2.0,]);post请求$response = $client->request('POST', 'http://localhost/post', ['form_params' => ['username' => 'webben','password' => '123456','multiple' => ['row1' => 'hello']]]);get请求$response = $client->request('POST', 'http://localhost/post', ['query' => ['username' => 'webben','password' => '123456',]]);或者$response = $client->POST/GET('http://localhost/post', ['form_params' => ['username' => 'webben','password' => '123456','multiple' => ['row1' => 'hello']]]);
自定义header
$client = new Client([//域名或者访问的api接口地址'base_uri' => 'http://localhost/test',// 超时,可设置可不设置'timeout' => 2.0,]);
// $api可以为空,一般为api接口后缀,也可以直接写到上面的base_uri里面,
$response = $client->request('POST/GET', '$api', ['headers' => ['name' => 'info'],'query' => ['username' => 'webben','password' => '123456',]]);
四.添加请求头的两种方式
如何要发送一个POST请求,并且需要添加header头,而且post的数据是json格式,有两种方式
postData是一个数组:
$postData = ['platform_no'=> $rms_platform_no,'uuid' => $uuid,"data_info" => $param];
方式一
$rs = $this->http($url , 'POST' , ['headers'=>$headers,'body'=>json_encode($postData)]);
方式二
$rs = $this->http($url , 'POST' , ['headers'=>$headers,'json'=>$postData]);
使用PHP的http请求客户端guzzle如何添加请求头相关推荐
- PHP guzzle异步请求数据,Guzzle中的异步请求
Guzzle中的异步请求 使用Guzzle发起异步请求 Guzzle是一个PHP的HTTP客户端,它在发起http请求时不仅可以同步发起,还可以异步发起. $client = new Client() ...
- PHP 使用 Guzzle 执行 HTTP 请求
阅读目录 阐述 安装 Guzzle 基本使用 get 请求 使用响应 获取返回的头部信息 使用 getBody 上传文件 PSOT 表单提交 提交 JSON 数据 使用 guzzle 发送异步的 HT ...
- Laravel 使用Guzzle执行HTTP请求
手册地址:http://docs.guzzlephp.org/en/stable/request-options.html#headers Guzzle是一个 PHP 的HTTP客户端,用来轻而易举地 ...
- SpringMVC根据客户端的不同的请求使用不同的VIEW进行响应
为什么80%的码农都做不了架构师?>>> 主要配置信息如下所示: <!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /user/1.json /user/ ...
- 带你刷burpsuite官方网络安全学院靶场(练兵场)之客户端漏洞——跨站请求伪造(CSRF)专题
介绍 PortSwigger是信息安全从业者必备工具burpsuite的发行商,作为网络空间安全的领导者,他们为信息安全初学者提供了一个在线的网络安全学院(也称练兵场),在讲解相关漏洞的同时还配套了相 ...
- mysql客户端不支持_MySQL 8.0 - 客户端不支持服务器请求的身份验证协议; 考虑升级MySQL客户端...
MySQL 8.0 - 客户端不支持服务器请求的身份验证协议; 考虑升级MySQL客户端 我是node.js和MySQL初学者,我刚开始设置并尝试一些基本代码.但是,由于某种原因,我甚至无法与服务器建 ...
- fiddler修改客户端发出去的请求
设置断点的两种方式: 1.通过工具栏设置断点 步骤:Rules --Automatic Breakpoints --选中 Before Requests 设置之后,客户端或者浏览器发起请求,模拟Goo ...
- WIN10提示没有默认的邮件客户端,或者当前的邮件客户端无法实现该请求,请将outlook设为默认邮件客户端“
问题:安装win10,提示"没有默认的邮件客户端,或者当前的邮件客户端无法实现该请求,请将outlook设为默认邮件客户端":标记默认应用及文件为outlook,也弹出此提示. 解 ...
- SpringBoot - 网络请求客户端WebClient使用详解
在 Spring 5 之前,如果我们想要调用其他系统提供的 HTTP 服务,通常可以使用 Spring 提供的 RestTemplate 来访问,不过由于 RestTemplate 是 Spring ...
- outlook邮箱显示一直启动中_为何outlook客户端处理完服务器请求之后就一直显示正在关闭状态...
您好, 请问您的Outlook具体的版本?(文件 > Office账户 > 关于Office)请确保您已经将Outlook升级到最新版本. 请问您使用的是什么类型的账户?POP,IMAP还 ...
最新文章
- 【POCO】POCO学习总结(二)——配置选择
- 在MAC下安装一些软件时提示来自身份不明开发者
- 文件服务器监控用户修改信息,文件服务器监控日志软件
- 输出该数二进制表示中1的个数。求取十进制数字元素1的个数 (3种方法)
- HTML5 requestAnimationFrame( ) 动画API
- ArrayList 有序集合 c#
- postgresql9.1_gaussdb200_解析表结构
- Android给文档加水印,Android文档水印之PDF水印
- 掌趣科技:游戏《一拳超人:最强之男》累计收入近5亿元
- 【kafka】Kafka中的动态配置源码分析
- C# 使用JSON对数据序列化和反序列化.
- redis stream持久化_带你彻底理解 Redis 持久化
- 使用Groovy将一段代码动态构造成一个类的方法
- MongoDB操作文件
- 别再用 offset 和 limit 分页了,性能太差!
- 关于谷歌不兼容showModalDialog的解决方案
- 95后大厂程序员删库被判刑,只因项目被接手对领导心生不满
- php公告滚动源码,如何利用JavaScriptjQuery实现滚动公告栏(代码实例)
- linux捕获鼠标点击事件文件,Linux捕捉鼠标事件和键盘事件的方法
- 学习-定义和调用求x的n次幂的函数