HttpWebRequest および HttpWebResponse から HTTP ステータス コード番号 (200、301、404 など) の取得で dtb によって提案されているように、enum を使用して番号を取得できます。ただし、移動した恒久的なサイトについても、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;
}
このコードを使用しているツールは、既存のドメインではなく 404 を表示できますが、リダイレクトを無視し、リダイレクトされた URL に関する詳細を表示します。たとえば、古いドメイン easytipsandtricks.com をテキスト フィールドに入力すると、tipscow.com の結果が表示されます (オンラインのチェッカー ツールで easytipsandtricks.com をチェックすると、正しいリダイレクト メッセージ - 301 Moved が表示されていることがわかります)。 )。助けてください。