我正在尝试使用以下代码将两个手动创建的Cookie与初始请求从客户端发送到服务器(无响应,可以提取Cookie)(如所讨论的那样) here)
HttpWebRequest request =
(HttpWebRequest)HttpWebRequest.Create(
"https://intra.group.net:5115/app/search.do");
//...
CookieContainer oCookies = new CookieContainer();
CookieCollection cookieGroup = new CookieCollection();
Cookie c1 = new Cookie("name1", "value1", "/", ".intra.group.net");
Cookie c2 = new Cookie("name2", "value2", "/", ".intra.group.net");
cookieGroup.Add(c1);
cookieGroup.Add(c2);
oCookies.Add(cookieGroup);
request.CookieContainer = oCookies;
但原始通信不包含(根据Fiddler)任何Cookie数据。有什么建议为什么他们失踪?非常感谢你提前!
答案 0 :(得分:0)
也许这是一些同步问题。有时,出于安全原因,问题是Document.Cookie中缺少的HttpOnly cookie。您可以尝试此解决方案here。
答案 1 :(得分:0)
在HttpWebRequest中收到Cookie,而不是发送。
它们是通过WebReponse发送的。
- > HttpContext.Current.Request:包含收到的Cookie
- > HttpContext.Current.Response:包含发送回浏览器的cookie。
将Cookie添加到响应中而不是请求中。
HttpCookie cookie = HttpContext.Current.Response.Cookies["someCookie"]
if (cookie != null)
HttpContext.Current.Response.Cookies.Remove(cookie);
HttpCookie updatedCookier = new HttpCookie....
HttpContext.Current.Response.Cookies.Add(updatedCookie);
答案 2 :(得分:0)
我不确定这对你是否有用,但几个月前我正在做类似的事情,我在HttpWebrequest中手动粘贴cookie,但它有效,请试试这个:
假设postReq = WebRequest。
HttpWebRequest request =(HttpWebRequest)HttpWebRequest.Create("SomeUrl");
postReq.Headers.Add("Cookie: PREF=ID=17337a16083851b1:");// You can get this from fiddler
将它全部发布在一行......