我用HttpWebRequest,HttpWebResponse来抓取指定网页上的全部内容,并把它保存为本地文件,但总是会有末尾一部份内容不能保存下来,难道是StringWriter也会有长度限制吗?

解决方案 »

  1.   

    我用了ReadToEnd()方法的。
    代表我是在网上找的,如下:
      private static string getContent(string Url)
            {
                string strResult = "";
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                    //声明一个HttpWebRequest请求
                    request.Timeout = 30000;
                    //设置连接超时时间
                    request.Headers.Set("Pragma", "no-cache");
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    Stream streamReceive = response.GetResponseStream();
                    Encoding encoding = Encoding.GetEncoding("GB2312");
                    StreamReader streamReader = new StreamReader(streamReceive, encoding);
                    strResult = streamReader.ReadToEnd();
                }
                catch
                {
                    throw;
                }
                return strResult;
            }
    我保存的代码为:
    StreamWriter sw = new StreamWriter("C:\\.xxx.txt");
                        sw.Write(getContent("http://www.xxx.com"));
    请问错误出在哪里?
      

  2.   

    不会是截取错了?是不是有关键字、保留字什么的,
    换个URL试试?
      

  3.   

    很可能网页里有个\0...string认为结束了
      

  4.   

    Encoding encoding = Encoding.Default   换试了吗?
      

  5.   

    解决了,是StreamWrite之后要Close.