使用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 相关文章推荐
探讨fckeditor在Php中的配置详解
Jun 08 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
php+mysql实现简单的增删改查功能
Jul 13 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
Mar 07 PHP
PHP表单数据写入MySQL数据库的代码
May 31 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
php面试中关于面向对象的相关问题
Feb 13 PHP
TP5框架实现签到功能的方法分析
Apr 05 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 PHP
PHP tp5中使用原生sql查询代码实例
Oct 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
PHP比你想象的好得多
2014/11/27 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
php中错误处理操作实例分析
2019/08/23 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
jQuery学习总结之jQuery事件
2014/06/30 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
简单实现js拖拽效果
2017/07/25 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
numpy.random模块用法总结
2019/05/27 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
你应该知道的Python3.6、3.7、3.8新特性小结
2020/05/12 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
颐和园英文导游词
2015/01/30 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js