2024年9月19日
Guzzleで外部通信
Guzzleを使ってHTTP通信してみる。
とりあえず最低限の文例。
使用環境
・ Amazon Linux 2
・ PHP 8.2.9
・ Guzzle version 3.9.3
事前準備
Composerを使ってGuzzleをインストールする。
composer require guzzle/guzzle
GET通信サンプル
<?php
require '../vendor/autoload.php';
// インスタンス生成
$client = new \GuzzleHttp\Client();
// GET通信
$options = [
'query' => [
'param1' => 1,
'param2' => 2,
],
];
$response = $client->request( 'GET', 'https://localhost/target.php', $options );
// ステータスコード
echo $response->getStatusCode(), PHP_EOL; // 200
// コンテントタイプ (ex. application/json)
echo $response->getHeader('content-type')[0], PHP_EOL;
// 取得データ
echo $response->getBody(), PHP_EOL;
PHP最低限としてオプションでクエリパラメータを指定しているが、ヘッダー情報や非同期にするなど必要に応じてその他オプションを付加する。
POST通信サンプル
<?php
require '../vendor/autoload.php';
// インスタンス生成
$client = new \GuzzleHttp\Client();
// POST通信
$options = [
'form_params' => [
'param1' => 1,
'param2' => 2,
],
];
$response = $client->request( 'POST', 'http://localhost/target.php', $options );
// ステータスコード
echo $response->getStatusCode(), PHP_EOL; // 200
// コンテントタイプ (ex. application/json)
echo $response->getHeader('content-type')[0], PHP_EOL;
// 取得データ
echo $response->getBody(), PHP_EOL;
PHP最低限としてオプションでフォームパラメータを指定しているが、ヘッダー情報や非同期にするなど必要に応じてその他オプションを付加する。