使用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 相关文章推荐
PHP4.04简明安装
Oct 09 PHP
使用php重新实现PHP脚本引擎内置函数
Mar 06 PHP
Php图像处理类代码分享
Jan 19 PHP
分享8个最佳的代码片段在线测试网站
Jun 29 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
Yii分页用法实例详解
Dec 04 PHP
smarty内置函数capture用法分析
Jan 22 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
Oct 28 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
laravel5使用freetds连接sql server的方法
Dec 07 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
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
常用简易JavaScript函数
2009/04/09 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
使用Python实现一个简单的项目监控
2015/03/31 Python
详解Python3中ceil()函数用法
2019/02/19 Python
python实现维吉尼亚加密法
2019/03/20 Python
基于django传递数据到后端的例子
2019/08/16 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
Python进行特征提取的示例代码
2020/10/15 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
《长城和运河》教学反思
2014/04/14 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android
详解CSS3浏览器兼容
2022/12/24 HTML / CSS