使用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学习笔记之一
Jan 17 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
PHP中file_exists()判断中文文件名无效的解决方法
Nov 12 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
Jul 28 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
PHP自动识别当前使用移动终端
May 21 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 10 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
Python Sphinx使用实例及问题解决
2020/01/17 Python
postman和python mock测试过程图解
2020/02/22 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
python中time tzset()函数实例用法
2021/02/18 Python
HTML5移动开发图片压缩上传功能
2016/11/09 HTML / CSS
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
本科生个人求职自荐信
2013/09/26 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
委托函范文
2015/01/29 职场文书
导游词开场白
2015/01/31 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
篮球拉拉队口号
2015/12/25 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL