日期:2014-05-17  浏览次数:20819 次

【第一次发帖】问个有关网页源代码获取和Stream类的问题
我就是写了一个类,想获得某个网页的源代码
由于每个网页的编码方式不一样,可能是utf-8,gbk,gb2312等,所以
1)首先以默认编码方式获取源代码字符串(可能存在识别错误,中文无法显示)
2)在1中寻找charset关键字,后面跟的是编码方式,获取之
3)用2中获得的编码方式再次重新正确的解析源代码字符串

但是现在碰到个问题,程序在30行时会报错,“流不可读”,请问这个怎么解决呢?
由于这个类要被循环利用,所以不希望两次Get网页源代码,一次用于识别编码,一次正确翻译,只希望读一次就解析出正确的源代码,求大神帮忙看看,怎么改才好?

另外,37-50是我写的另一种方法,但是发现获得的网页源代码会被莫名其妙的截断,只能显示开头的一部分,后面都会丢失,小白在这里求教了
static class HTTP_Interaction
        {
            static public string GetURL(string strURL, string cookie)
            {
                try
                {
                    HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(strURL);
                    if (cookie != "")
                    {
                        wr.Headers["cookie"] = cookie;  //设置cookie
                    }
                    using (HttpWebResponse wsp = (HttpWebResponse)wr.GetResponse())
                    {
                        using (Stream st = wsp.GetResponseStream())
                        {
                            //默认编码读取结果
                            Encoding DefaultCharset = Encoding.Default; //默认编码
                            StreamReader sr = new StreamReader(st, DefaultCharset);