public static string GetRemoteHtmlCode(string Url)
        {
            string s = "";
            try
            {
                MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();
                _xmlhttp.open("GET", Url, false, null, null);
                _xmlhttp.send("");
                if (_xmlhttp.readyState == 4)
                {
                    s = System.Text.Encoding.Default.GetString((byte[])_xmlhttp.responseBody);
                }
            }
            catch 
            {
                MessageBox.Show("出错,3分钟后重新执行函数");
                Thread.Sleep(180000);
                GetRemoteHtmlCode(Url)
            }            return s;
        }
我的想法是这样的,当远程文件打不开,或出现异常时,等三分钟再重新调用一下,问题是上面的代码好像有问题,隔3分钟后函数返回的结果s每次都是空,不知道错在哪了。

解决方案 »

  1.   

    GetRemoteHtmlCode(Url);改为s = GetRemoteHtmlCode(Url);
      

  2.   

    肯定是这样的。你这代码GetRemoteHtmlCode最终返回的还是你第一次出现异常时的s,也就是空的。
    如果你有返回,
    catch  
      {
      MessageBox.Show("出错,3分钟后重新执行函数");
      Thread.Sleep(180000);
      s=GetRemoteHtmlCode(Url)
      }
      

  3.   

    果然是这样的, s=GetRemoteHtmlCode(Url);