使用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 采集程序中常用的函数
Dec 09 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
php图像处理函数大全(推荐收藏)
Jul 11 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
学习php中的正则表达式
Aug 17 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
Jan 09 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
两种php实现图片上传的方法
Jan 22 PHP
IOS 开发之NSDictionary转换成JSON字符串
Aug 14 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
php装饰者模式简单应用案例分析
Oct 23 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学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
JS简单计算器实例
2015/01/20 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
老生常谈javascript中逻辑运算符&&和||的返回值问题
2017/04/13 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
vue动态路由配置及路由传参的方式
2018/05/23 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
python+pyqt实现12306图片验证效果
2017/10/25 Python
深入理解Python中的*重复运算符
2017/10/28 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
医德医魂心得体会
2014/09/11 职场文书
学习十八大的心得体会
2014/09/12 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python