1

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 が表示されていることがわかります)。 )。助けてください。

4

1 に答える 1