HttpWebRequest编程相关问题(5)

来源:互联网 发布:java中什么是接口 编辑:程序博客网 时间:2024/04/27 11:28

之前的段落有下面一段代码:

string en = oResponse.CharacterSet;
 
if (en == null||en.Length==0) en = "gb2312"
;
if (en.ToLower() == "iso-8859-1") en = "gb2312"
;
StreamReader reader 
= new StreamReader(dataStream, Encoding.GetEncoding(en));

其实是判断Response返回的数据是什么编码格式:GBK,UTF-8,Unicode,iso-8858-1?

如果不能获取到编码格式,那么我们在解码时也是错误的。

这点还是同http协议有关,也可以说是同web容器本身的输出有关,在这个基础上还有一个点值得提一下:

Content-Encoding: gzip
Transfer-Encoding: chunked

这也是同压缩解码有关,虽然同上面的说的不是一回事。

写本文的另外一点的主要方面是之前的代码有这样一句话:

oRequest.UserAgent = "NutsSoft.com.cn";

告诉服务器浏览器的软件版本。

大部分的服务器不会检查这个东西,但是总是有BT存在的。比如微软

MSN的网站是检查了浏览器的版本的。好像是根据版本来判断浏览器是否支持javascript

所以上面的一句话只能改成了

 oRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0;NutsSoft.com.cn)";

而这个小小的问题又困扰了我大半天。其实之前也遇到同样的问题,只是这次没有预料到会发生而已。

原创粉丝点击