c#中HttpWebRequest对应302重定向为什么取不到 cookie
2011-04-29 11:55
399 查看
在默认情况下HttpWebRequest 对象的AllowAutoRedirect 为true 所以是取不到它的cookie
要想获取cookie 只需要把 AllowAutoRedirect 设为false
如
要想获取cookie 只需要把 AllowAutoRedirect 设为false
如
Stream GetResponse(string url, ref WebHeaderCollection headers, byte[] data, bool onlyHeader) { string ret = string.Empty; HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.AllowAutoRedirect = false; request.Method = "GET"; //request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36"; //request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; if (url.ToLower().Trim().StartsWith("https")) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); //request.KeepAlive = false; //request.ProtocolVersion = HttpVersion.Version10; } if (headers != null && headers.Count > 0) { foreach (string key in headers) { request.Headers.Add(key, headers[key]); } } if (data != null && data.Length > 1) { request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; using (Stream stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); } } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); headers = new WebHeaderCollection(); foreach (string key in response.Headers.Keys) { headers.Add(key, response.Headers[key]); } MemoryStream ms = new MemoryStream(); if (!onlyHeader) { byte[] buffer = new byte[1024 * 1024]; using (Stream sr = response.GetResponseStream()) { int len = sr.Read(buffer, 0, buffer.Length); while (len > 0) { ms.Write(buffer, 0, len); len = sr.Read(buffer, 0, buffer.Length); } } ms.Seek(0, SeekOrigin.Begin); } response.Close(); return ms; } private bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { //直接确认,否则打不开 return true; }
相关文章推荐
- C#使用HttpWebRequest进行HTTP请求发送和接收的一些小结。(新增修复.NET4.0以下关于cookie的bug)
- [保存]C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例
- C# : WebRequest发起Http Post请求模拟登陆并cookie处理示例
- c#HttpWebRequest修改cookie
- 【转】C# WebRequest发起Http Post请求模拟登陆并cookie处理示例
- c#2.0中的HttpWebRequest涉及到的CookieContainer有点问题
- HttpWeb获取不到Request cookie的问题
- C# WebBrowser HttpWebRequest Cookie 的结合运用。
- C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- C# HttpWebRequest获取cookie
- C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例
- 为什么foreach(HttpCookie cookie in Request.Cookies)会出错
- HttpWebRequest模拟c#网站登录
- .net/C# HttpWebRequest传送与接收参数
- c# HttpWebRequest与HttpWebResponse
- C# HttpWebRequest第一次请求很慢超时的原因
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C# HttpWebRequest GET HTTP HTTPS 请求