使用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 sprintf()函数让你的sql操作更安全
Jul 23 PHP
php 方便水印和缩略图的图形类
May 21 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
解析PHP的session过期设置
Jun 29 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
Nov 08 PHP
PHP模板解析类实例
Jul 09 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 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 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
python快速查找算法应用实例
2014/09/26 Python
Python读大数据txt
2016/03/28 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
英文简历自荐信范文
2013/12/11 职场文书
一年级数学教学反思
2014/02/01 职场文书
股份合作协议书
2014/09/10 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
捐助倡议书
2015/01/19 职场文书
转正申请报告格式
2015/05/15 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
Hive导入csv文件示例
2022/06/25 数据库