code:WebRequest wrq = WebRequest.Create(url);
WebResponse wrs = wrq.GetResponse();
Stream strm = wrs.GetResponseStream();
StreamReader sr= new StreamReader(strm);
string content = sr.ReadToEnd();在这里为什么 content 得到null空值,而用readline,一行行的读可以读出来?查了一下MSDN,ReadToEnd Method的返回值:
Return Value
The rest of the stream as a string, from the current position to the end. If the current position is at the end of the stream, returns the empty string("").content得到null,是因为当前位置已经在流的末端?
请教该如何用ReadToEnd()一次性将目标URL的内容读到一个字符串里,谢谢!

解决方案 »

  1.   

    fileStream.Seek(0, SeekOrigin.Begin);
      

  2.   

    我不知道能否可行,你不是说"content得到null,是因为当前位置已经在流的末端"我想的话,既然这样,何不先定位到文件的开始处,然后再ReadToEnd,没有试过,不知道行不行..FileStream  fileStream = new FileStream(fileName);
    fileStream.Seek(0, SeekOrigin.Begin);
      

  3.   

    应该可以,这样改下即可:Stream strm = wrs.GetResponseStream();
    strm.Seek(0, SeekOrigin.Begin);
    StreamReader sr= new StreamReader(strm);
    string content = sr.ReadToEnd();
      

  4.   

    楼上的朋友,这个方法不行,我试了一下,出现exception:
    This stream does not support seek operations.我的代码:        private void btnFetch_Click(object sender, EventArgs e)
            {
                TyArticle = new Article();
                TyArticle.ArticleUrl = tbUrl.Text.ToString();            WebRequest wrq = WebRequest.Create(TyArticle.ArticleUrl);
                wrq.BeginGetResponse(new AsyncCallback(OnResponse), wrq);
            }        protected void OnResponse(IAsyncResult ar)
            {
                WebRequest wrq = (WebRequest)ar.AsyncState;
                WebResponse wrp = wrq.EndGetResponse(ar);
                Stream strm = wrp.GetResponseStream();
                strm.Seek(0, SeekOrigin.Begin);
                StreamReader sr = new StreamReader(strm);
                string content = sr.ReadToEnd();
                //string line;
                //while((line = sr.ReadLine())!=null)
                //{
                //    MessageBox.Show(line);
                //}
                strm.Close();
            }
      

  5.   

    我只是根据 ReadtoEnd方法的函数原形 猜测是因为“content得到null,是因为当前位置已经在流的末端”,并不能肯定是因为这个原因。
      

  6.   

    TO:This stream does not support seek operations.哦,不好意思,我用的是FileStream...要不你就一行行读吧..
      

  7.   

    我把lz的代码贴到我的2005里
    context不为null,是一个网页的源代码。。