【问题标题】:How to check whether url is working or not?如何检查 url 是否有效?
【发布时间】:2015-11-27 05:11:54
【问题描述】:

我在 asp.net 应用程序的 Windows 服务中创建了一个方法。

       public static bool Test(string url)
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "HEAD";
        try
        {
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            resp.Close();
            return true;
        }
        catch
        {
            return false;
        }
    }

        JurisdictionBL jbl = new JurisdictionBL(0);
        DataSet jds = new DataSet();
        jbl.FetchAll(jds);


        foreach (DataTable table in jds.Tables)
        {
            foreach (DataRow dr in table.Rows)
            {
                var jId = dr["Jurisdiction"].ToString();
                var jurl = dr["URL"].ToString();
                if (Test(jurl))
                {
                    jbl.IsValidUrlTrue(Convert.ToInt32(jId));
                }
                else
                {
                    jbl.IsValidUrlFalse(Convert.ToInt32(jId));
                }
            }
        }

整个应用程序不起作用。它卡住了。基本上我在表 tbJurisdiction 中有一个字段“IsValidURL”和一个需要不断检查它们是否工作的字段 URL。如果它们不起作用,则 IsValidURL 应该变为 false。它也没有正确检查任何网址。如果任何 url 无效,它仍然显示 isvalidURL Feild true

请帮帮我!!!

【问题讨论】:

  • 您只是想验证 URL 格式还是想检查 url 是否存在?
  • 我要检查 url 是否存在?
  • 卡住了,在哪里?可能在 req.GetResponse() ?在 jbl.FetchAll() 处?
  • 在 req.GetResponse() 处是。它卡在 Test method()...
  • 您所在的司法管辖区列表中有多少个 ID?您正在同步阻塞调用整个列表的 Web 服务器,很明显,如果您有很多,您的应用程序将等待很长一段时间而没有任何 UI 更新。尝试使用 httpwebrequest 类提供的异步方法。您绝对应该更改您的应用程序以异步检查这些 Url 的可用性

标签: c# asp.net c#-4.0


【解决方案1】:

您需要检查响应的状态代码以验证 URL 是否提供了您请求的资源。

public static bool Test(string url)
{

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    req.Method = "HEAD";
    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

    Boolean isHttpOk = resp.StatusCode == HttpStatusCode.OK;
    resp.Close();

    return isHttpOk;

}

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 2013-04-11
    • 2019-10-28
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多