C# 接收最终状态代码200,但其为301->;302->;200

C# 接收最终状态代码200,但其为301->;302->;200,c#,c#-4.0,C#,C# 4.0,我正在使用 HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); //myHttpWebResponse.StatusCode 为此,我收到200,但实际状态代码是301->302->200 请让我知道。代码有错误吗 提前感谢。这

我正在使用

HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
//myHttpWebResponse.StatusCode
为此,我收到200,但实际状态代码是301->302->200

请让我知道。代码有错误吗


提前感谢。

这是因为
HttpWebRequest
会自动跟随重定向,并且只提供最后一个状态代码。如果不需要,可以将
AllowAutoRedirect
属性设置为false:

HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
myHttpWebRequest.AllowAutoRedirect = false;
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
//myHttpWebResponse.StatusCode

请注意,它将在第一个请求之后停止,但您必须手动创建一个新请求以跟踪重定向。

感谢您的回复,但对于下一个可以从中获取Url的请求。
HttpWebResponse
有一个包含Url的
Headers
属性