我正在为一个允许用户通过 API 登录的站点创建一个 API。我正在使用 Guzzle,但问题是如何将 Cookies 插件与 Guzzle 一起使用?在 cURL 中,我可以使用 cookie 文件,并将其与请求一起传递。但是 Guzzle 文档上的示例看起来令人困惑。
use Guzzle\Http\Client;
use Guzzle\Plugin\Cookie\CookiePlugin;
use Guzzle\Plugin\Cookie\CookieJar\ArrayCookieJar;
$cookiePlugin = new CookiePlugin(new ArrayCookieJar());
// Add the cookie plugin to a client
$client = new Client('http://www.test.com/');
$client->addSubscriber($cookiePlugin);
// Send the request with no cookies and parse the returned cookies
$client->get('http://www.yahoo.com/')->send();
// Send the request again, noticing that cookies are being sent
$request = $client->get('http://www.yahoo.com/');
$request->send();
echo $request;
它似乎提出了 3 个请求。我不明白为什么它向 test.com 发出请求,然后向 yahoo.com 发出两次请求。为什么您无法提出 1 个请求?