私はAPIサイトにログインするためにGuzzleを使用していますが、正しい資格情報を使ってログインした時点でRefreshTokenを使ってCookieを取得し、次回の呼び出しで送信します。ここでは簡単なコードです:私は、次の呼び出しでこのクッキーを使用する必要があり、今GuzzleHttp:POST応答からクッキーを保存し、次のPOSTに使用するにはどうすればよいですか?
$newCookies = $response->getHeader('set-cookie');
を、私は知っている:
$client = new Client(array(
'cookies' => true
));
$response = $client->request('POST', 'http://myapi.com/login', [
'timeout' => 30,
'form_params' => [
'email' => $request->get('email'),
'password' => $request->get('password'),
]
]);
と私はクッキーと右の応答を取り戻すには、私が使用してクッキーを見ることができますGuzzleは私のためにクッキーを保存し、 "CookieJar"または "SessionCookieJar"を使って自動的に(またはそうでない)次の呼び出しでそれを送信することができます。私はそれを使用しようとしましたが、 E「jarファイル」内のクッキーは、ここで私がやっていることです:
$cookieJar = new SessionCookieJar('SESSION_STORAGE', true);
$client = new Client([
'cookies' => $cookieJar
]);
$response = $client->request ....
しかし、私は戻ってPOSTからクッキーを取得するとき、私は使用してそれを見ることができます。
$newCookies = $response->getHeader('set-cookie');
それはcookieJarにはないので、次の呼び出しでそれを送信しません。 私はここで何が欠けていますか?
ありがとうございました! ['cookies' => $jar]
は、クライアントのリクエスト/レスポンスで使用する特定クッキージャー($jar
)の使用を示しながらドキュメントhere、['cookies' => true]
あたりとして
http://docs.guzzlephp.org/en/stable/quickstart.html#cookies。あなたは、ログインリクエストのjarを設定して、クッキーを収集する必要があります。 – Phil
あなたの答えをありがとう、私はリクエストでそれを設定しようとしましたが、新しいクライアントinitでは何も動作しません。 )、いくつかのコードを追加してください。 –