如何发送带有 Guzzlehttp/guzzle 6 的 Cookie?
How can I send Cookies with Guzzlehttp/guzzle 6?
我需要发送带有自定义 cookie 的请求。
我试过这样设置 cookieJar:
$cookieJar = CookieJar::fromArray(array($cookieName=>$cookieStr),
'api.mobra.in');
$res = $this->guzzleClient->request($requestMethod, $url,
[
'cookies' => [$cookieJar]
]
);
但是出现错误
cookies must be an instance of GuzzleHttp\Cookie\CookieJarInterface
请建议示例或详细解释。
我看过文件,但他们没有详细提到。
谢谢!
use GuzzleHttp\Cookie\CookieJar;
$cookieJar = CookieJar::fromArray([
'cookie_name' => 'cookie_value'
], 'example.com');
$client->request('GET', '/get', ['cookies' => $cookieJar]);
您可以阅读文档 here。
如果使用 cookie 请求选项指示,Guzzle 可以为您维护 cookie 会话。发送请求时,cookie 选项必须设置为 GuzzleHttp\Cookie\CookieJarInterface
.
的实例
// Use a specific cookie jar
$jar = new \GuzzleHttp\Cookie\CookieJar;
$r = $client->request('GET', 'http://httpbin.org/cookies', [
'cookies' => $jar
]);
如果您想对所有请求使用共享 cookie jar,您可以在客户端构造函数中将 cookie 设置为 true。
// Use a shared client cookie jar
$client = new \GuzzleHttp\Client(['cookies' => true]);
$r = $client->request('GET', 'http://httpbin.org/cookies');
检查太完整quickstart。
另一种使用 Guzzle 向请求添加 cookie 的方法:
$url = 'https://www.example.com';
$request_options = [
'headers' => ['Cookie' => 'COOKIE_NAME=VALUE']
];
$response = $this->httpClient->request('GET', $url, $request_options);
对于 在 laravel 中使用 Guzzle Http 发送 cookie,您可以使用此示例代码:
//your address
$address = "http://example.com/xyz";
//your cookie
$coockie = ['Cookie' => "Key=Value"];
//your request
$res = Http::withOptions([
'headers' => $coockie
])->get($address);
我需要发送带有自定义 cookie 的请求。
我试过这样设置 cookieJar:
$cookieJar = CookieJar::fromArray(array($cookieName=>$cookieStr),
'api.mobra.in');
$res = $this->guzzleClient->request($requestMethod, $url,
[
'cookies' => [$cookieJar]
]
);
但是出现错误
cookies must be an instance of GuzzleHttp\Cookie\CookieJarInterface
请建议示例或详细解释。 我看过文件,但他们没有详细提到。
谢谢!
use GuzzleHttp\Cookie\CookieJar;
$cookieJar = CookieJar::fromArray([
'cookie_name' => 'cookie_value'
], 'example.com');
$client->request('GET', '/get', ['cookies' => $cookieJar]);
您可以阅读文档 here。
Guzzle 可以为您维护 cookie 会话。发送请求时,cookie 选项必须设置为 GuzzleHttp\Cookie\CookieJarInterface
.
// Use a specific cookie jar
$jar = new \GuzzleHttp\Cookie\CookieJar;
$r = $client->request('GET', 'http://httpbin.org/cookies', [
'cookies' => $jar
]);
如果您想对所有请求使用共享 cookie jar,您可以在客户端构造函数中将 cookie 设置为 true。
// Use a shared client cookie jar
$client = new \GuzzleHttp\Client(['cookies' => true]);
$r = $client->request('GET', 'http://httpbin.org/cookies');
检查太完整quickstart。
另一种使用 Guzzle 向请求添加 cookie 的方法:
$url = 'https://www.example.com';
$request_options = [
'headers' => ['Cookie' => 'COOKIE_NAME=VALUE']
];
$response = $this->httpClient->request('GET', $url, $request_options);
对于 在 laravel 中使用 Guzzle Http 发送 cookie,您可以使用此示例代码:
//your address
$address = "http://example.com/xyz";
//your cookie
$coockie = ['Cookie' => "Key=Value"];
//your request
$res = Http::withOptions([
'headers' => $coockie
])->get($address);