C# C未传输HttpWebRequest Cookies
我正在尝试将两个手动创建的cookie从客户端发送到服务器(没有响应),在服务器上可以使用下面讨论的代码提取cookie,例如:C# C未传输HttpWebRequest Cookies,c#,cookies,httpwebrequest,C#,Cookies,Httpwebrequest,我正在尝试将两个手动创建的cookie从客户端发送到服务器(没有响应),在服务器上可以使用下面讨论的代码提取cookie,例如: 但据Fiddler称,原始通信不包含任何Cookie数据。有什么建议可以解释为什么他们不见了吗?提前非常感谢 可能是同步问题。有时问题是Document.Cookie中缺少HttpOnly Cookie。出于安全原因,您可以尝试此解决方案。Cookie在HttpWebRequest中接收,而不是发送 它们与WebResponse一起发送 ->HttpContext.C
但据Fiddler称,原始通信不包含任何Cookie数据。有什么建议可以解释为什么他们不见了吗?提前非常感谢 可能是同步问题。有时问题是Document.Cookie中缺少HttpOnly Cookie。出于安全原因,您可以尝试此解决方案。Cookie在HttpWebRequest中接收,而不是发送 它们与WebResponse一起发送 ->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);
我不确定这是否适用于您,但几个月前,我做了一些类似的事情,在HttpWebrequest中手动粘贴cookies,效果很好,因此请尝试以下方法: 假设postReq=WebRequest
HttpWebRequest request =(HttpWebRequest)HttpWebRequest.Create("SomeUrl");
postReq.Headers.Add("Cookie: PREF=ID=17337a16083851b1:");// You can get this from fiddler
在一行中发布所有内容。…HttpContext不是服务器吗?我在客户端,需要将两个cookie连同第一个请求一起从客户端传输到服务器。谢谢是的,但这也适用于客户。如果服务器不接受/不尊重您尝试设置的cookie,那么它将不会出现在响应中,也不会在浏览器中设置。如果在请求中放入cookie并将请求发送到服务器,服务器可以刷新所有cookie,从而导致响应未设置任何cookie。因为cookies是在浏览器中随响应设置的。搜索api、web服务等在响应之前刷新Cookie和标头以生成干净的响应是很常见的。你能控制/app/search.Do代码吗?如果我没听错的话,你是在指责请求和响应的同步问题。但我没有任何要求从中提取饼干。我试图通过编程创建它们,并将它们附加到第一次通信中。
HttpWebRequest request =(HttpWebRequest)HttpWebRequest.Create("SomeUrl");
postReq.Headers.Add("Cookie: PREF=ID=17337a16083851b1:");// You can get this from fiddler