使用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 相关文章推荐
本地计算机无法启动Apache故障处理
Aug 08 PHP
ThinkPHP分页实例
Oct 15 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 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
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
教大家制作简单的php日历
2015/11/17 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
js中判断控件是否存在
2010/08/25 Javascript
jquery异步调用页面后台方法‏(asp.net)
2011/03/01 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
解决Python pip 自动更新升级失败的问题
2020/02/21 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
保安部任务及岗位职责
2014/02/25 职场文书
庆七一活动总结
2014/08/27 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
国博复兴之路观后感
2015/06/02 职场文书
复活读书笔记
2015/06/29 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python