Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C未传输HttpWebRequest Cookies_C#_Cookies_Httpwebrequest - Fatal编程技术网

C# C未传输HttpWebRequest Cookies

C# C未传输HttpWebRequest Cookies,c#,cookies,httpwebrequest,C#,Cookies,Httpwebrequest,我正在尝试将两个手动创建的cookie从客户端发送到服务器(没有响应),在服务器上可以使用下面讨论的代码提取cookie,例如: 但据Fiddler称,原始通信不包含任何Cookie数据。有什么建议可以解释为什么他们不见了吗?提前非常感谢 可能是同步问题。有时问题是Document.Cookie中缺少HttpOnly Cookie。出于安全原因,您可以尝试此解决方案。Cookie在HttpWebRequest中接收,而不是发送 它们与WebResponse一起发送 ->HttpContext.C

我正在尝试将两个手动创建的cookie从客户端发送到服务器(没有响应),在服务器上可以使用下面讨论的代码提取cookie,例如:


但据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