使用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连接Oracle数据库
Oct 09 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php实现监听事件
Nov 06 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
php微信支付之APP支付方法
Mar 04 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
php中preg_replace_callback函数简单用法示例
Jul 21 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHP中递归的实现实例详解
Nov 14 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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的mssql数据库连接类实例
2014/11/28 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Python连接DB2数据库
2016/08/27 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
python中pdb模块实例用法
2021/01/15 Python
台湾良兴购物网:EcLife
2019/12/01 全球购物
2019年c语言经典面试题目
2016/08/17 面试题
软件测试笔试题
2012/10/25 面试题
Ruby如何进行文件操作
2014/07/17 面试题
中职应届生会计求职信
2013/10/23 职场文书
门卫人员岗位职责
2013/12/24 职场文书
颁奖典礼主持词
2014/03/25 职场文书
法律系毕业生求职信
2014/05/28 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
党的群众路线调研报告
2014/11/03 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL