使用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 相关文章推荐
windows xp下安装pear
Dec 02 PHP
URL Rewrite的设置方法
Jan 02 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
Nov 02 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
PHP符合PSR编程规范的实例分享
Dec 21 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
Jun 03 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
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
php 常用字符串函数总结
2008/03/15 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
Python定义一个函数的方法
2020/06/15 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
企业厂长岗位职责
2013/12/17 职场文书
商场中秋节活动方案
2014/02/07 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
Python 中的Sympy详细使用
2021/08/07 Python
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript