本帖最后由 pinqing 于 2011-02-24 22:30:05 编辑

解决方案 »

  1.   

    直接打开速度还可以,带宽是1m的;
    使用了线程池运行上面这段,存在同时访问多个API的情况~
      

  2.   

    你的XML大小不一样  获取的速度就会有差异
      

  3.   

    我的代码应该没有写错吧,有没有什么办法可以优化这个速度的?或者多少秒后就停止获取XML~
    用webRequest.Timeout = 5 * 1000;
    不行呀~
      

  4.   

    代码 没问题,我也这样用。只是返回的xml数据比较少。
      

  5.   

    有时返回的XML比较少,也很耗费时间~
      

  6.   

    把这句去了,或者设置小一点   webRequest.Timeout =2*1000;
      

  7.   

    经过测试程序在
    string xmlStr = streamReader.ReadToEnd();
    这句话这里用的时间较多,卡也卡在这里!应该是从网络上下载数据太慢造成的...
    有什么方法可以设置获取响应数据的超时时间???
      

  8.   

    获取数据的超时可以用别的方法代替 例如Stream rStream = webResponse.GetResponseStream();
    MemoryStream mem = new MemoryStream();
    bool IsTimeout = false; // 标志是否超时
    byte[] buffer = new byte[1024];
    int read = 0;
    DateTime dt = DateTime.Now;
    do
    {
       read = rStream.Read(buffer,0,1024);
       mem.Write(buffer,0,read);
       if ( ( DateTime.Now-dt ).Milliseconds > 5 ) // 5秒超时
       {
          IsTimeout = true;
          break;
       }
    }
    while(read>0)
    string result = "";
    if ( !IsTimeout )
       result = (new StreamReader(mem,Encoding.UTF8)).ReadToEnd();
      

  9.   

    @bingo_太感谢了,你的思路真开阔~
      

  10.   

     XmlTextReader reader = new XmlTextReader(url);取reader里的数据