經過 安裝 PHP 套件 guzzle 概述後,我們知道 Guzzle 是 PHP HTTP client library,本文將介紹用『 Guzzle 來完成 Call API』。
先前的 stream 和 cURL 在輸出的 response 時,一些 function 已經內建將 body 的資訊轉為 string 格式。guzzle 要將 body 輸出轉為 string 格式時,需加上 (string) 將 response 轉換為 string 格式,範例如下:
<?php
require __DIR__ . "/vendor/autoload.php";
use GuzzleHttp\Client;
// Create and send an HTTP request.
$response = $client->request("GET", "https://jsonplaceholder.typicode.com/posts/1");
// 輸出 body 轉換為 string 格式
var_dump((string) $response->getBody());
/* (string)
* {
* "userId": 1,
* "id": 1,
* "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
* "body": "quia et suscipit\nsuscipit recusa..."
* }
*/
Guzzle 的 class Client 除了通用方法 request()
之外,Guzzle 提供 Magic methods,便於開發者更容易的發出同步請求,Magic methods 如下:
Magic methods | 用法 |
---|---|
get() | $client->get("http://httpbin.org/get"); |
delete() | $client->delete("http://httpbin.org/get"); |
patch() | $client->patch("http://httpbin.org/delete/get"); |
post() | $client->post("http://httpbin.org/delete/get"); |
put() | $client->put("http://httpbin.org/delete/get"); |
Guzzle 各個 Magic methods 底層,是由 request(string $method, $uri = '', array $options = [])
組成,因此,request() 和 Magic methods 擇其一使用即可。Guzzle 其他功能,請參考 Guzzle Quickstart
p.s Magic methods 寫在路徑 vendor/guzzlehttp/guzzle/src/ClientTrait.php
1 安裝 PHP 套件 guzzle
2 Using Responses
3 Magic methods
4 Guzzle Quickstart