今天突然出来了一个问题,URL地址调用导致程序卡死(原因是服务挂了,磁盘坏了)

然后想到了,再调用URL地址前先判断下地址是否有响应,这样不就可以解决问题了吗?

C# 代码:

/// <summary>
/// 检测URL地址是否可以访问
/// </summary>
/// <param name="strUrl">URL地址(可以不写http)</param>
/// <returns>返回OK</returns>
/// <example>UrlCheck("http://www.baidu.com")</example>
private bool UrlCheck(string strUrl)
{
    if (!strUrl.Contains("http://") && !strUrl.Contains("https://"))
    {
        strUrl = "http://" + strUrl;
    }
    HttpWebRequest hwReq = null;
    try
    {
        hwReq = (HttpWebRequest)WebRequest.Create(strUrl);
        hwReq.Method = "HEAD";
        hwReq.Timeout = 100000;  //超时时间10秒
        HttpWebResponse res = (HttpWebResponse)hwReq.GetResponse();
        ////此方法返回一个状态码。。状态码为200是为正常,异常时会返回错误信息。比如超时
        return (res.StatusCode == HttpStatusCode.OK);
    }
    catch
    {
        return false;
    }
    finally
    {
        if (hwReq != null)
        {
            hwReq.Abort();
            hwReq = null;
        }
    }
}

 

posted on 2016-01-25 15:05  £冷☆月№  阅读(438)  评论(4编辑  收藏  举报