PHPのGuzzle 6 でレスポンスヘッダからCookieを読み取りたい
PHPのGuzzle6を使ってレスポンスからCookieを読み取りたいと思っていますが上手くいきません。
アドバイスお願いできないでしょうか。
$client = new \GuzzleHttp\Client(['cookies' => true]);
// ログイン
$res = $client->request('POST', 'https://xxxx', [
'form_params' => [
'id' => $id,
'pass' => $pass
]
]);
$cookie = $res->getHeader('Set-Cookie');
echo '<pre>' . var_export($cookie, false) . '</pre>'; // arr() ←空
よろしくお願いいたします。
//-- 2016-07-05 追記 --
以下の要領でCookieを取得することができました。
$client = new \GuzzleHttp\Client(['cookies' => true]);
// ログイン
$res = $client->request('POST', 'https://xxxx', [
'form_params' => [
'id' => $id,
'pass' => $pass
]
]);
// $cookie = $res->getHeader('Set-Cookie');
$cookies = $client->getConfig('cookies');
$cookiesArray = $cookies->toArray();
echo '<pre>' . var_export($cookiesArray, false) . '</pre>';
↓取得結果
array (
0 =>
array (
'Name' => 'xxxxx',
'Value' => 'yyyyy777362a4c45f95eae7d0ebd59',
'Domain' => 'example.com',
'Path' => '/',
'Max-Age' => NULL,
'Expires' => NULL,
'Secure' => false,
'Discard' => false,
'HttpOnly' => false,
),
)
ちなみにHTTPレスポンスヘッダにはSet-Cookieヘッダがセットされていましたが、
$res->getHeaders();
を利用して見てみたところ、Guzzleのレスポンスオブジェクトには Set-Cookie ヘッダがセットされていませんでした。