Zttp – 一個基於 Guzzle Http 的更好用的 PHP HTTP Package

JellyBool發表於2019-02-16

原文:https://www.codecasts.com/blo…

在 PHP 的專案中,如果你需要通過程式碼來發起 HTTP 請求,相信很多人對 GuzzleHttp 這個 Package 很熟悉,然而其實在使用 Guzzle 的時候,我們依然可以做得更簡便一點的,比如我們可以使用 Zttp,這是基於 Guzzle 的另外一個 HTTP Package。

大致來看看 Zttp 的用法:

1.比如傳送一個攜帶 headersPOST 請求:

$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 還是方便,Nice and clean!

2.攜帶 Form 表單引數的 POST 請求:

$response = Zttp::asFormParams()->post($url, [
    `foo` => `bar`,
    `baz` => `qux`,
]);

3.發起 Patch 請求:

$response = Zttp::patch($this->url(`/patch`), [
    `foo` => `bar`,
    `baz` => `qux`,
]);

4.發起 PUT 請求:

$response = Zttp::put($this->url(`/put`), [
    `foo` => `bar`,
    `baz` => `qux`,
]);

5.發起 DELETE 請求:

$response = Zttp::delete($this->url(`/delete`), [
    `foo` => `bar`,
    `baz` => `qux`,
]);

6.新增一個可接受的 Header:

$response = Zttp::accept(`banana/sandwich`)->post($url);

7.阻止重定向:

$response = Zttp::withoutRedirecting()->get($url);

你可以看到,上面的這些事例程式碼其實可以包含了大部分的應用場景,如果說你還需要更復雜的使用方式,你可以到 Github kitetail/zttp 檢視;而且,即使你還想使用 Guzzle,你依然是可以使用 Guzzle 的,所以我可以負責任地向大家推薦一下這個 Zttp 的 package.

相關文章