我正在尝试使用POST方法自动登录网站,一切似乎都正常,但我的HttPWebResponse方法可以方便地跳过标记为HttpOnly的cookie。有什么方法可以读它。
public CookieContainer _cookies = new CookieContainer();
我的代码
request.CookieContainer = _cookies;
我已经读过,当使用CookieContainer时,我不应该担心读取HttpOnly cookie,因为它们是以原子方式处理的。但显然事实并非如此。使用fiddler我确实看到我得到4个cookie但是响应.Cookies大小如果是3并使用相同的代码获得下一个请求被拒绝。请帮忙!!
完整代码如下:
HttpWebRequest request = CreateRequest(uri);
request.Method = "POST";
request.GetRequestStream().Write(data, 0, data.Length);
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
return DecodeResponse(response);
DecodeResponse的工作原理如下
foreach (System.Net.Cookie cookie in response.Cookies)
{
Console.WriteLine("Cookie:");
Console.WriteLine(cookie.HttpOnly);
_cookies.Add(new Uri(response.ResponseUri.GetLeftPart(UriPartial.Authority)), cookie);
}
答案 0 :(得分:0)
Cookie
HttpOnly
确定页面脚本或其他活动 内容可以访问此cookie。
如果cookie具有HttpOnly
属性且无法通过客户端脚本访问,则以下代码返回true;否则,错误。
var _cookies = new CookieContainer();
var request = (HttpWebRequest)WebRequest.Create("http://yourURL.com");
request.CookieContainer = _cookies;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
foreach (Cookie cook in response.Cookies)
{
Console.WriteLine("Cookie:");
Console.WriteLine(cook.HttpOnly);
}