我可以从HttpWebRequest和HttpWebResponse获取Http状态代码( 200,301,404 等)中的dtb建议获得枚举数字.但是,对于移动永久站点,我也得到200(OK).我想看到的是301.请帮忙.我的代码如下.可能有什么不对/需要纠正?
public int GetHeaders(string url)
{
//HttpStatusCode result = default(HttpStatusCode);
int result = 0;
var request = HttpWebRequest.Create(url);
request.Method = "HEAD";
try
{
using (var response = request.GetResponse() as HttpWebResponse)
{
if (response != null)
{
result = (int)response.StatusCode; // response.StatusCode;
response.Close();
}
}
}
catch (WebException we)
{
if (we.Response != null)
{
result = (int)((HttpWebResponse)we.Response).StatusCode;
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我使用此代码的工具能够显示404,而不是现有域,但它忽略重定向并显示有关重定向URL的详细信息.例如,如果我将旧域easytipsandtricks.com放在文本字段中,它会显示tipscow.com的结果(如果您在任何在线检查器工具中检查easytipsandtricks.com,您会注意到它提供了正确的重定向消息 - 301 Moved ).请帮忙.
您需要将HttpWebRequest.AllowAutoRedirect设置为false(默认为true),因为它不会自动跟随重定向(30x响应).
如果AllowAutoRedirect设置为false,则将HTTP状态代码为300到399的所有响应返回给应用程序.
样品:
var request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "HEAD";
request.AllowAutoRedirect = false;
Run Code Online (Sandbox Code Playgroud)