使用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中的 == 运算符进行字符串比较
Nov 26 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
PHP7.0安装笔记整理
Aug 28 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
Mar 15 PHP
PDO::rollBack讲解
Jan 29 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
Sep 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
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
javascript设计模式之中介者模式Mediator
2014/12/30 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
js初始化验证实例详解
2016/11/26 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
介绍Python中的文档测试模块
2015/04/28 Python
python抓取百度首页的方法
2015/05/19 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Django model class Meta原理解析
2020/11/14 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
servlet面试题
2012/08/20 面试题
国际商务专业学生个人的自我评价
2013/09/28 职场文书
霸气队列口号
2014/06/18 职场文书
淘宝活动总结范文
2014/06/26 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
暑假生活随笔
2015/08/15 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python