c#中HttpWebRequest对应302重定向为什么取不到 cookie

avatar
作者
猴君
阅读量:1

在C#中,HttpWebRequest是一个用于发送HTTP请求的类。当服务器返回一个带有302状态码的重定向响应时,HttpWebRequest会自动跟随重定向。

当重定向发生时,HttpWebRequest会创建一个新的HttpWebRequest对象,并将原始请求的CookieContainer属性值传递给新的请求对象。因此,新的请求对象应该能够访问到原始请求中的Cookie。

以下是一个示例代码,展示了如何获取重定向后的Cookie:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com"); request.AllowAutoRedirect = true; // 允许HttpWebRequest跟随重定向 request.CookieContainer = new CookieContainer(); // 创建一个CookieContainer对象  HttpWebResponse response = (HttpWebResponse)request.GetResponse();  // 获取重定向后的Cookie CookieCollection cookies = response.Cookies; foreach (Cookie cookie in cookies) {     Console.WriteLine(cookie.Name + ": " + cookie.Value); } 

在上述示例中,我们首先创建了一个HttpWebRequest对象,并将AllowAutoRedirect属性设置为true,以允许自动跟随重定向。接着,我们创建了一个CookieContainer对象,并将其赋值给HttpWebRequest的CookieContainer属性。

当发送请求后,如果服务器返回一个302状态码的重定向响应,HttpWebRequest会自动跟随重定向,并在新的请求中保留原始请求的Cookie。

最后,我们可以通过HttpWebResponse的Cookies属性获取重定向后的Cookie,并进行进一步处理。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!