使用Zttp简化Guzzle 调用


Posted in PHP onJuly 02, 2017

Zttp 是 Adam Wathan 为了让代码更富表现力以及简化常见用例而写的一个 Guzzle 的封装。

这是使用 Zttp 去 Post 一个自定义头部内容请求的一个例子:

$response = Zttp::withHeaders(['Fancy' => 'Pants'])->post($url, [
  'foo' => 'bar',
  'baz' => 'qux',
]);
 
$response->json();

如果用一个与 Guzzle 差不多的东西写这个请求的话,大概这样写:

$client = new Client();
$response = $client->request('POST', $url, [
  'headers' => [
    'Fancy' => 'Pants',
  ],
  'form_params' => [
    'foo' => 'bar',
    'baz' => 'qux',
  ]
]);
 
json_decode($response->getBody());

相较之下,Zttp 简化了代码的写法,还能很简单地返回 JSON 格式的内容。

下面是 使用 Zttp 的几个例子:

带参数的 Post 请求#

$response = Zttp::asFormParams()->post($url, [
  'foo' => 'bar',
  'baz' => 'qux',
]);

Patch 请求#

$response = Zttp::patch($this->url('/patch'), [
  'foo' => 'bar',
  'baz' => 'qux',
]);

Put 请求#

$response = Zttp::put($this->url('/put'), [
  'foo' => 'bar',
  'baz' => 'qux',
]);

Delete 请求#

$response = Zttp::delete($this->url('/delete'), [
  'foo' => 'bar',
  'baz' => 'qux',
]);

添加请求头#

$response = Zttp::accept('banana/sandwich')->post($url);

防止重定向#

$response = Zttp::withoutRedirecting()->get($url);

在 Zttp 的测试文件 中还有几个简单的示例供你查看。 目前这个包还在开发中,有兴趣的童鞋建议直接上 GitHub 吧!

PHP 相关文章推荐
如何对PHP程序中的常见漏洞进行攻击
Oct 09 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
PHP概率计算函数汇总
Sep 13 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
php foreach如何跳出两层循环(详解)
Nov 05 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
php readfile()修改文件上传大小设置
Aug 11 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
详解php几行代码实现CSV格式文件输出
Jul 01 #PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 #PHP
详解如何在云服务器上部署Laravel
Jun 30 #PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 #PHP
ThinkPHP实现登录退出功能
Jun 29 #PHP
PHP实现微信图片上传到服务器的方法示例
Jun 29 #PHP
PHP微信模板消息操作示例
Jun 29 #PHP
You might like
聊天室php&mysql(五)
2006/10/09 PHP
php实现的MySQL通用查询程序
2007/03/11 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
使用php计算排列组合的方法
2013/11/13 PHP
PHP概率计算函数汇总
2015/09/13 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python数据库的连接实现方法与注意事项
2016/02/27 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
numpy自动生成数组详解
2017/12/15 Python
Linux下python制作名片示例
2018/07/20 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
2012/11/29 HTML / CSS
请解释流与文件有什么不同
2016/07/29 面试题
公务员的自我鉴定
2013/10/26 职场文书
测绘工程系学生的自我评价
2013/11/30 职场文书
女方婚礼新郎答谢词
2014/01/11 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
JavaScript实现简单计时器
2021/06/22 Javascript
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS