[扩展推荐] Zttp ——简化你的 Guzzle 调用

file

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 吧!

今天的 Laravel 新闻播报就到这里:tada: 谢谢捧场~ 点击订阅 Laravel 资讯 或者使用这个 插件 可以让你第一时间查看新内容呢!

参考链接:https://laravel-news.com/zttp-guzzle-wrapp...

本作品采用《CC 协议》,转载必须注明作者和本文链接
Stay Hungry, Stay Foolish.
本帖由 Summer 于 6年前 加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 14
Destiny

鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿 O(∩_∩)O

6年前 评论
leo

这个6

6年前 评论

@leo 看到这个第一眼时我就想,你一定会喜欢的(^∇^)

6年前 评论
chongyi

这个非常科学

6年前 评论

我竟然用curl,好蠢!

6年前 评论
Summer

星期六还这么多人

6年前 评论

@Summer 上班呀今天

6年前 评论

这个库写得真的可以,总代码只有 279 行(zhttp.php),但真的值得学习一下

6年前 评论

很好用。 :relaxed:

4年前 评论

如何设置超时呢?
直接调用 Zttp 类下的 timeout() 函数

$response = Zttp::asJson()->timeout(1)->post($url, $data);
2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!