在与 Hyper 的交易之间保留 cookie
Keeping cookie between transactions with Hyper
我希望能够为下一个请求保留上一个请求的 cookie:
let hyper_client = Client::new();
server_response = hyper_client.request(Method::Get, url).headers(Headers::new()).send();
假设上面的代码编译成功,我如何检索此会话的 cookie?
像这样的东西应该可以工作:
match server_response.headers.get() {
Some(&SetCookie(ref content)) => println!("Cookie: {:?}", content),
_ => println!("No cookie found"),
}
使用 Cookie
header 发送 到 服务器的 cookie,SetCookie
发送 来自[的 cookie =29=]服务器。我之所以强调这一点,是因为我一开始只看到 Cookie
,然后就被它吸引住了。
另外,请注意我只是通过模式匹配的类型推断来请求 SetCookie
header。我也可以使用 turbo-fish: headers.get::<SetCookie>()
.
如果您需要将相同的 cookie 发送回服务器,您只需将响应中的 SetCookie
值克隆回请求的新 Cookie
header:
let mut headers = Headers::new();
// if you received cookies in the server response then send the same ones back
if let Some(&SetCookie(ref content)) = server_response.headers.get() {
headers.set(Cookie(content.clone()));
}
hyper_client.request(Method::Get, url)
.headers(headers)
.send();
我希望能够为下一个请求保留上一个请求的 cookie:
let hyper_client = Client::new();
server_response = hyper_client.request(Method::Get, url).headers(Headers::new()).send();
假设上面的代码编译成功,我如何检索此会话的 cookie?
像这样的东西应该可以工作:
match server_response.headers.get() {
Some(&SetCookie(ref content)) => println!("Cookie: {:?}", content),
_ => println!("No cookie found"),
}
使用 Cookie
header 发送 到 服务器的 cookie,SetCookie
发送 来自[的 cookie =29=]服务器。我之所以强调这一点,是因为我一开始只看到 Cookie
,然后就被它吸引住了。
另外,请注意我只是通过模式匹配的类型推断来请求 SetCookie
header。我也可以使用 turbo-fish: headers.get::<SetCookie>()
.
如果您需要将相同的 cookie 发送回服务器,您只需将响应中的 SetCookie
值克隆回请求的新 Cookie
header:
let mut headers = Headers::new();
// if you received cookies in the server response then send the same ones back
if let Some(&SetCookie(ref content)) = server_response.headers.get() {
headers.set(Cookie(content.clone()));
}
hyper_client.request(Method::Get, url)
.headers(headers)
.send();