2

ページのステータス (404、移動など) を確認したい。どうすればできますか?ATM 私は、ページが存在するかどうかだけを教えてくれる以下のことをしています。また、例外が私のコードを遅くしていると思われます(私はそれをテストしました)

static public bool CheckExist(string url)
        {
            HttpWebRequest wreq = null;
            HttpWebResponse wresp = null;
            bool ret = false;

            try
            {
                wreq = (HttpWebRequest)WebRequest.Create(url);
                wreq.KeepAlive = true;
                //wreq.Method = "HEAD";
                wresp = (HttpWebResponse)wreq.GetResponse();
                ret = true;
            }
            catch (System.Net.WebException)
            {
            }
            finally
            {
                if (wresp != null)
                    wresp.Close();
            }
            return ret;
        }
4

2 に答える 2

1

次のような http エラー コードを取得できます。

catch (System.Net.WebException e)
{
    int HttpStatusCode = (int)((HttpWebResponse)e.Response).StatusCode;
}
于 2009-04-16T00:50:58.197 に答える
1

HttpWebResponse クラスは、HttpStatusCode 列挙から値を返す StatusCode プロパティを公開します。エラーでない場合は、ステータス コード (404 が見つかりません、403 未承認、301 永久に移動、200 OK など) が直接表示されます。エラーの場合、WebException クラスは Status プロパティを公開します - 別の列挙型から取得されますが、私が考えていたものから必要なケースを特定することができます。

于 2009-04-16T00:44:07.247 に答える