PHPのhttpクライアントguzzleでWebサービスにログインする

Tetsuro Aoki 701views 更新:2015年7月21日

guzzleはPHPのhttpクライアントです。
composerでインストールできるので手軽に使うことができる点が魅力です。

今回はこのguzzleを使ってWebサービスにログインしてみます。

$client = new \GuzzleHttp\Client([
    'base_uri' => 'https://sample.com/',
    'timeout' => 30.0,
    'cookies' => true  //ログイン時のcookie情報を保持
]);

try {
    $response = $client->post('login', [
        'form_params' => [
            'username' => 'user',
            'password' => 'password'
        ]
    ]);
} catch (\GuzzleHttp\Exception\TransferException $e) {
    //例外処理
}
//この後$client->getなどとすればログインした状態のままリクエストを送信できる

上記がhttps://sample.com/loginに対してログイン情報をpostで投げるコードになります。
Clientクラスのインスタンス生成時にcookiesをtrueにすれば、ログイン状態を保持できます。
catch (\GuzzleHttp\Exception\TransferException $e)とすることでリクエスト送信時に発生し得る全ての例外をキャッチできます。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません