使用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 相关文章推荐
MySQL授权问题总结
May 06 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
使用php实现截取指定长度
Aug 06 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
XHProf报告字段含义的解析
May 17 PHP
PHP实现上传多文件示例代码
Feb 20 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
javascript实现的listview效果
2007/04/28 Javascript
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
python去掉行尾的换行符方法
2017/01/04 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
详解django三种文件下载方式
2018/04/06 Python
Python用for循环实现九九乘法表
2018/05/31 Python
python版DDOS攻击脚本
2019/06/12 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
python如何删除列为空的行
2020/07/17 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
学期自我鉴定
2013/11/04 职场文书
迟到早退检讨书
2014/02/10 职场文书
村干部培训方案
2014/05/02 职场文书
市场拓展计划书
2014/05/03 职场文书
医院合作意向书范本
2015/05/08 职场文书
JS的深浅复制详细
2021/10/16 Javascript
Python+Tkinter打造签名设计工具
2022/04/01 Python