このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
11_php:02_framework:01_laravel:35_laravel_guzzle [2019/05/25 00:55] – matsui | 11_php:02_framework:01_laravel:35_laravel_guzzle [2021/02/26 12:21] (現在) – matsui | ||
---|---|---|---|
行 9: | 行 9: | ||
composer require guzzlehttp/ | composer require guzzlehttp/ | ||
+ | ==== 1.シンプル利用 ==== | ||
+ | < | ||
+ | use GuzzleHttp\Client; | ||
+ | |||
+ | $url = ' | ||
+ | $ip = ' | ||
+ | $port = ' | ||
+ | $client = new Client(); | ||
+ | $response = $client-> | ||
+ | ' | ||
+ | $url, | ||
+ | [ | ||
+ | ' | ||
+ | ' | ||
+ | ] | ||
+ | ); | ||
+ | |||
+ | echo $response-> | ||
+ | echo $response-> | ||
+ | echo $response-> | ||
+ | // レスポンスボディを取得 | ||
+ | $responseBody = $response-> | ||
+ | </ | ||
+ | |||
+ | ==== 2.JSON-RPC 2.0 ==== | ||
+ | 下記はZabbix apiでアラートを取得する例 | ||
+ | |||
+ | < | ||
+ | use GuzzleHttp\Client; | ||
+ | $url = " | ||
+ | $auth = " | ||
+ | $params = [ | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ], | ||
+ | ]; | ||
+ | | ||
+ | $client = new Client(); | ||
+ | |||
+ | try{ | ||
+ | $response = $client-> | ||
+ | ' | ||
+ | $url, | ||
+ | $params | ||
+ | ); | ||
+ | } catch (\GuzzleHttp\Exception\ConnectException $e) { | ||
+ | return json_encode($e-> | ||
+ | } | ||
+ | | ||
+ | echo $response-> | ||
+ | echo $response-> | ||
+ | echo $response-> | ||
+ | |||
+ | $responseBody = $response-> | ||
+ | return $responseBody; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 3.XML_RPC ==== | ||
- | ===== Controller | + | === Controller === |
< | < | ||
行 46: | 行 112: | ||
</ | </ | ||
- | ===== 呼び出し部分 | + | === 呼び出し部分 === |
< | < | ||
$XmlRcp = new App\Http\Controllers\XmlRpc($url, | $XmlRcp = new App\Http\Controllers\XmlRpc($url, | ||
$XmlRcp-> | $XmlRcp-> | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== 50X, 40X 対応 ===== | ||
+ | |||
+ | ' | ||
+ | |||
+ | < | ||
+ | $response = $client-> | ||
+ | ' | ||
+ | $url, | ||
+ | [ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ] | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Error Handle ===== | ||
+ | |||
+ | timeoutなどのexceptionは下記のように処理する。 | ||
+ | 「catch (\GuzzleHttp\Exception\ConnectException $e)」でエラーを取得すると、タイムアウト時に終了せずエラーを受け取れる | ||
+ | |||
+ | |||
+ | < | ||
+ | try{ | ||
+ | // Code | ||
+ | $response = $client-> | ||
+ | $method, | ||
+ | $url, | ||
+ | $params | ||
+ | ); | ||
+ | } catch(\GuzzleHttp\Exception\GuzzleException $e) { | ||
+ | // Handle excpetion | ||
+ | return json_encode($e-> | ||
+ | } | ||
</ | </ | ||
{{tag> | {{tag> |