随笔 - 83,  文章 - 6,  评论 - 20,  阅读 - 10万

今天突然出来了一个问题,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   £冷☆月№  阅读(440)  评论(4编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示