使用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 相关文章推荐
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
PHP学习笔记之字符串编码的转换和判断
May 22 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
PHP内存缓存Memcached类实例
Dec 08 PHP
PHP生成plist数据的方法
Jun 16 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
PHP+MySQL实现消息队列的方法分析
May 09 PHP
PHP+MySQL实现模糊查询员工信息功能示例
Jun 01 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
javascript控制台详解
2015/06/25 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
vue实现购物车案例
2020/05/30 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
python计算方程式根的方法
2015/05/07 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
车间操作工岗位职责
2013/12/19 职场文书
自考生自我评价分享
2014/01/18 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
投标担保书范文
2014/04/02 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
主持人开场白台词
2015/05/29 职场文书
借钱欠条怎么写
2015/07/03 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书