一.目录

  1. 遇到的问题
  2. guzzle基础知识
  3. 添加请求头的两种方式

二.遇到的问题

我们的一个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如何添加请求头相关推荐

  1. PHP guzzle异步请求数据,Guzzle中的异步请求

    Guzzle中的异步请求 使用Guzzle发起异步请求 Guzzle是一个PHP的HTTP客户端,它在发起http请求时不仅可以同步发起,还可以异步发起. $client = new Client() ...

  2. PHP 使用 Guzzle 执行 HTTP 请求

    阅读目录 阐述 安装 Guzzle 基本使用 get 请求 使用响应 获取返回的头部信息 使用 getBody 上传文件 PSOT 表单提交 提交 JSON 数据 使用 guzzle 发送异步的 HT ...

  3. Laravel 使用Guzzle执行HTTP请求

    手册地址:http://docs.guzzlephp.org/en/stable/request-options.html#headers Guzzle是一个 PHP 的HTTP客户端,用来轻而易举地 ...

  4. SpringMVC根据客户端的不同的请求使用不同的VIEW进行响应

    为什么80%的码农都做不了架构师?>>>    主要配置信息如下所示: <!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /user/1.json /user/ ...

  5. 带你刷burpsuite官方网络安全学院靶场(练兵场)之客户端漏洞——跨站请求伪造(CSRF)专题

    介绍 PortSwigger是信息安全从业者必备工具burpsuite的发行商,作为网络空间安全的领导者,他们为信息安全初学者提供了一个在线的网络安全学院(也称练兵场),在讲解相关漏洞的同时还配套了相 ...

  6. mysql客户端不支持_MySQL 8.0 - 客户端不支持服务器请求的身份验证协议; 考虑升级MySQL客户端...

    MySQL 8.0 - 客户端不支持服务器请求的身份验证协议; 考虑升级MySQL客户端 我是node.js和MySQL初学者,我刚开始设置并尝试一些基本代码.但是,由于某种原因,我甚至无法与服务器建 ...

  7. fiddler修改客户端发出去的请求

    设置断点的两种方式: 1.通过工具栏设置断点 步骤:Rules --Automatic Breakpoints --选中 Before Requests 设置之后,客户端或者浏览器发起请求,模拟Goo ...

  8. WIN10提示没有默认的邮件客户端,或者当前的邮件客户端无法实现该请求,请将outlook设为默认邮件客户端“

    问题:安装win10,提示"没有默认的邮件客户端,或者当前的邮件客户端无法实现该请求,请将outlook设为默认邮件客户端":标记默认应用及文件为outlook,也弹出此提示. 解 ...

  9. SpringBoot - 网络请求客户端WebClient使用详解

    在 Spring 5 之前,如果我们想要调用其他系统提供的 HTTP 服务,通常可以使用 Spring 提供的 RestTemplate 来访问,不过由于 RestTemplate 是 Spring ...

  10. outlook邮箱显示一直启动中_为何outlook客户端处理完服务器请求之后就一直显示正在关闭状态...

    您好, 请问您的Outlook具体的版本?(文件 > Office账户 > 关于Office)请确保您已经将Outlook升级到最新版本. 请问您使用的是什么类型的账户?POP,IMAP还 ...

最新文章

  1. 【POCO】POCO学习总结(二)——配置选择
  2. 在MAC下安装一些软件时提示来自身份不明开发者
  3. 文件服务器监控用户修改信息,文件服务器监控日志软件
  4. 输出该数二进制表示中1的个数。求取十进制数字元素1的个数 (3种方法)
  5. HTML5 requestAnimationFrame( ) 动画API
  6. ArrayList 有序集合 c#
  7. postgresql9.1_gaussdb200_解析表结构
  8. Android给文档加水印,Android文档水印之PDF水印
  9. 掌趣科技:游戏《一拳超人:最强之男》累计收入近5亿元
  10. 【kafka】Kafka中的动态配置源码分析
  11. C# 使用JSON对数据序列化和反序列化.
  12. redis stream持久化_带你彻底理解 Redis 持久化
  13. 使用Groovy将一段代码动态构造成一个类的方法
  14. MongoDB操作文件
  15. 别再用 offset 和 limit 分页了,性能太差!
  16. 关于谷歌不兼容showModalDialog的解决方案
  17. 95后大厂程序员删库被判刑,只因项目被接手对领导心生不满
  18. php公告滚动源码,如何利用JavaScriptjQuery实现滚动公告栏(代码实例)
  19. linux捕获鼠标点击事件文件,Linux捕捉鼠标事件和键盘事件的方法
  20. 学习-定义和调用求x的n次幂的函数

热门文章

  1. Busiest Computing Nodes
  2. 系统集成项目管理工程师教程———活动历时估算所采用的主要方法和技术
  3. codewars练习(javascript)-2021/3/21
  4. 改造摄像头模块成开发板
  5. 秋冬心血管疾病高发,牢记这几个身体异常症状!
  6. 无线传输课程设计,基于ZigBee的水质监测系统设计
  7. Hyperledger Fabric基础介绍
  8. 六大云计算厂商南山论剑,收下这封英雄帖!
  9. Drcom下如何优雅地使用路由器上网
  10. SpringBoot实现微信扫码登录功能让网站支持使用微信登录demo