我希望能够为下一个请求保留上一个请求的 cookie:
let hyper_client = Client::new();
server_response = hyper_client.request(Method::Get, url).headers(Headers::new()).send();
假设上面的代码编译,我怎样才能检索到这个会话的 cookie?
我希望能够为下一个请求保留上一个请求的 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
标头用于发送到服务器的 cookie 以及从SetCookie
服务器发送的 cookie 。我要强调这一点,因为我一开始只看到它,它让我很着迷。Cookie
另外,请注意,我SetCookie
只是通过模式匹配的类型推断来请求标头。我也可以使用涡轮鱼:headers.get::<SetCookie>()
。
如果您需要将相同的 cookie 发送回服务器,您可以SetCookie
将响应中的值克隆回Cookie
请求的新标头中:
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();