首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Guzzle设置CookieJar

为Guzzle设置CookieJar
EN

Stack Overflow用户
提问于 2017-02-06 05:07:23
回答 2查看 20.2K关注 0票数 9

我正在用PHP为一个需要身份验证的站点做单元测试。身份验证是基于cookie的,因此我需要能够在cookie jar中放入这样的cookie:

代码语言:javascript
复制
[ 'user_token' => '2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae' ] 

然后,web应用程序可以将这个已知良好的令牌用于测试数据,并将能够在测试条件下进行身份验证,以便与数据装置进行交互。

此外,它必须是一个安全的cookie,我(显然)需要设置域。

问题是:我不知道如何制作和放置这个曲奇,并把它放在罐子里。你怎么做到的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-06 06:29:17

The source code提供了我需要的答案。

CookieJar类提供了从关联数组生成cookies的方法。示例:

代码语言:javascript
复制
$domain = 'example.org';
$values = ['users_token' => '2c26b46b68ffc68ff99b453c1d30113413422d706483bfa0f98a5e886266e7ae'];

$cookieJar = \GuzzleHttp\Cookie\CookieJar::fromArray($values, $domain);

$client = new \GuzzleHttp\Client([
    'base_uri' => 'https://example.org',
    'cookies'  => $cookieJar 
]);
票数 18
EN

Stack Overflow用户

发布于 2017-02-06 05:19:23

简单的例子。这段代码将cookie保存在一个文件中,并在下次执行脚本时重新加载它

代码语言:javascript
复制
use GuzzleHttp\Client;
use GuzzleHttp\Cookie\FileCookieJar;

// file to store cookie data
$cookieFile = 'cookie_jar.txt';

$cookieJar = new FileCookieJar($cookieFile, TRUE);

$client = new Client([ 
  'base_uri' => 'http://example.com',
  // specify the cookie jar
  'cookies' => $cookieJar
]);

// guzzle/cookie.php, a page that returns cookies.
$response = $client->request('GET', 'simple-page.php');

会话cookies不会自动存储。要存储php会话cookie,我们必须将第二个参数设置为TRUE。

代码语言:javascript
复制
$cookieJar = new FileCookieJar($cookieFile, TRUE);

参考文献

http://www.ryanwright.me/cookbook/guzzle/cookie

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42057302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档