帮看看 HttpWebRequest 相关的一段代码

验证码识别 2011-08-11 06:35:42

static public int GetHtml(HttpWebRequest request, ref string strContent)
{
try
{
strContent = "";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream responseStream = response.GetResponseStream();

if (response.ContentEncoding.ToLower().Contains("gzip"))
{
responseStream = new GZipStream(responseStream, CompressionMode.Decompress, true);
}
else if (response.ContentEncoding.ToLower().Contains("deflate"))
{
responseStream = new DeflateStream(responseStream, CompressionMode.Decompress);
}

string strCharacterSet = response.CharacterSet;

if (strCharacterSet.Contains("ISO-8859-1"))
{
strCharacterSet = "gbk";
}


StreamReader readStream = new StreamReader(responseStream, System.Text.Encoding.GetEncoding(strCharacterSet));
strContent = readStream.ReadToEnd();

responseStream.Close();

response.Close();


return 0;
}
catch(Exception ex)
{
CMyFun.WriteLog(ex.ToString());
return -1;
}

}



偶尔出错, 什么原因?
-----------------------------------------------------
2011-08-11 18:28:15 System.ArgumentException: 基流不可读。
参数名: stream
在 System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen, Boolean usingGZip)
在 System.IO.Compression.GZipStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen)
在 Robot.CMyFun.GetHtml(HttpWebRequest request, String& strContent) 位置 D:\workspace\WOWRobot_20110218_multi\CMyFun.cs:行号 63


...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
验证码识别 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sp1234 的回复:]
或许是服务器端压缩时有一些bug吧。服务器端跟你客户端使用了同一个压缩/解压缩工具吗?
[/Quote]

不清楚服务端使用的压缩/解压缩工具

抓包分析返回的是 gzip 压缩过的
  • 打赏
  • 举报
回复
或许是服务器端压缩时有一些bug吧。服务器端跟你客户端使用了同一个压缩/解压缩工具吗?

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧