【发布时间】:2017-02-27 22:42:39
【问题描述】:
试图让一个休息请求通过。我能够从推荐的方法中获取 Cookie,但无法处理以下请求。标题中列出的响应在以下条件下返回:
foreach(RestResponseCookie a in response.Cookies){
if(a.Name == "JSESSIONID")
{
request.AddHeader("cookie:" + a.Name, a.Value);
}
}
response = client.Execute(request);
这将返回“指定的值包含无效的 HTTP 标头字符。参数名称:名称”
当尝试改为通过
添加时 request.AddCookie(a.Name, a.Value);
返回是“未找到”,虽然我可以在手动访问站点时收到请求。
编辑1。
可以通过处理所有 cookie 而不仅仅是文档中明确说明的那个来修复。
client.CookieContainer = new CookieContainer();
foreach(RestResponseCookie a in response.Cookies){
if(a.Expires == new DateTime(0))//remove expiring cookie as stated in dat3450's answer
client.CookieContainer.Add(newCookie() {Name = a.Name, Value = a.Value, Path = a.Path, Domain = a.Domain});
}
【问题讨论】: