使用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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
php学习之流程控制实现代码
Jun 09 PHP
使用PHP Socket写的POP3类
Oct 30 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 PHP
如何理解PHP核心特性命名空间
May 28 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 cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
另一个javascript小测验(代码集合)
2011/07/27 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python爬取网页转换为PDF文件
2018/06/07 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
python代码区分大小写吗
2020/06/17 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
django中cookiecutter的使用教程
2020/12/03 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
社会保险接收函
2014/01/12 职场文书
我的中国梦口号
2014/06/16 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
vue中this.$http.post()跨域和请求参数丢失的解决
2022/04/08 Vue.js