使用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 相关文章推荐
回帖脱衣服的图片实现代码
Feb 15 PHP
php设置session值和cookies的学习示例
Mar 21 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
Zend Framework自定义Helper类相关注意事项总结
Mar 14 PHP
PHP抓取及分析网页的方法详解
Apr 26 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
laravel添加前台跳转成功页面示例
Oct 22 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
Apr 06 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 PHP
PHP7 整型处理机制修改
Mar 09 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查询域名状态whois的类
2006/11/25 PHP
php自动跳转中英文页面
2008/07/29 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
Javascript实现秒表倒计时功能
2018/11/17 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
Python实现简单多线程任务队列
2016/02/27 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
python计算导数并绘图的实例
2020/02/29 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
python中wx模块的具体使用方法
2020/05/15 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
高校生生产实习自我鉴定
2013/09/21 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
爱祖国演讲稿
2014/05/04 职场文书
教师考核材料
2014/05/21 职场文书
股份合作协议书
2014/09/10 职场文书
老干部座谈会主持词
2015/07/03 职场文书
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python