无法从HttpWebResponse中获得值
哨子 2011-02-18 08:32:02 己知类型为HttpWebResponse的变量response不为空
[code=C]
void GetContent(HttpWebResponse response)
{
response = hre;
if (null == response) { throw new ArgumentNullException("参数HttpWebResponse不能为Null"); }
if (string.IsNullOrEmpty(_Encoding)) { _Encoding = response.CharacterSet; }
Stream stream = new MemoryStream();
byte[] buffer = new byte[1024];
while (true)
{
int sz = response.GetResponseStream().Read(buffer, 0, 1024);
if (sz == 0) { break; }
stream.Write(buffer, 0, sz);
}
stream.Position = 0;
StreamReader reader = new StreamReader(stream, Encoding.GetEncoding(_Encoding));
string str = reader.ReadToEnd();
if ("ISO-8859-1" == _Encoding.ToUpper())
{
_Encoding = GetMetaCharacterSet(str);
stream.Seek(0, SeekOrigin.Begin); // 设置当前流的位置为流的开始
reader = new StreamReader(stream, Encoding.GetEncoding(_Encoding));
str = reader.ReadToEnd();//此处在断点查看时发现异常,但运行时正常
}
reader.Close(); //StreamReader会关闭它读取的流
//response.Close(); //由response的创建者关闭response
_HtmlContent = str;
if (DownEnd != null)
DownEnd(this, EventArgs.Empty);
}
[/code]
str = reader.ReadToEnd();//此处在断点查看时发现异常,但运行时正常
这句断点查询时鼠标提示有一句:“reader.EndOfStream”引发了“System.ObjectDisposedException”类型的异常
但是却没中断,不知道怎么回事。
无论如何str都是空值,郁闷,不知道哪位能解释一下。