make is.dev make it simple. development.
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

最低限としてオプションでフォームパラメータを指定しているが、ヘッダー情報や非同期にするなど必要に応じてその他オプションを付加する。