如何用C#实现自动判断链接已失效(链接所指网站已不存在),望高手给出实现代码。

解决方案 »

  1.   

    没有弄过!
    提个思路,调用dos的ping,然后根据结果判断!
      

  2.   

    不行的,ping对方禁用就会超时
    最好是用线程提交一个访问,然后看是否有代码返回,然后再在返回的代码里面判断出(除开网页告诉你访问不成功的那个反馈代码)
    一般对方网站403 404 500都说明人家正在调整,但是是能运行着的.看自己的意思了,如果你强调100%能用,既要排除这些403 404 500之类的代码
      

  3.   

    string m_strHtml;
    StreamReader sr = null;
    Encoding code = Encoding.GetEncoding("gb2312");
    WebRequest httpWebRequest = null;
    WebResponse httpWebResponse = null;
    httpWebRequest = WebRequest.Create(m_url);
    httpWebResponse = httpWebRequest.GetResponse(); //获得流 
    sr = new StreamReader(httpWebResponse.GetResponseStream(), code);
    m_strHtml = sr.ReadToEnd();根据m_strHtml判断返回值是否正常。
      

  4.   

    对于没有做错误重定向的网站,可以用上述的方法,
    但是做了错误重定向的,就没有办法确认了,除非你知道所有链接网站的重定向内容比如:http://www.microsoft.com/abc.ccc
    这个页面是不存在的,而微软就做了一个错误重定向页面
      

  5.   

    可以考虑用AJAX请求,判断状态。
      

  6.   

            try
            {
                WebClient wc = new WebClient();
                Stream db = wc.OpenRead(url);
            }
            catch (Exception ex)
            {
               //出错表示链接错误,做相应的处理
            }在最上面添加
    using System.IO;
    using System.Net;
      

  7.   

    string m_strHtml;
    StreamReader sr = null;
    Encoding code = Encoding.GetEncoding("gb2312");
    WebRequest httpWebRequest = null;
    WebResponse httpWebResponse = null;
    httpWebRequest = WebRequest.Create(m_url);httpWebRequest.AllowAutoRedirect=false //是否重定向httpWebResponse = httpWebRequest.GetResponse(); //获得流 
    sr = new StreamReader(httpWebResponse.GetResponseStream(), code);
    m_strHtml = sr.ReadToEnd(); 
      

  8.   

    WebRequest httpWebRequest = null; 
    HttpWebResponse httpWebResponse = null; 
    httpWebRequest = WebRequest.Create(m_url); 
    httpWebResponse =(HttpWebResponse)httpWebRequest.GetResponse(); //获得流
    if(httpWebResponse.StatusCode==HttpStatusCode.OK)//即应答代码为200
    {
    //等效于 HTTP 状态 200。OK 指示请求成功,且请求的信息包含在响应中。这是最常接收的状态代码。 
    }
    else
    {
    //链接实效
    }
    这个最高效,也是最有效的。
      

  9.   

    to:zhoufoxcnm_url = new Uri("http://www.hs198.com");
    httpWebRequest = WebRequest.Create(m_url); 运行至此报错:无效的 URI: 无法分析主机名。
      

  10.   

    to:jack20080808
       方法可行,只是美中不足是在库表遍历每条记录检查链接是有时会报超时错误。(表中有61条记录),能不能把效率再提高点?