HttpWebRequest编程相关问题(5)

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

string en = oResponse.CharacterSet;
if (en == null || en.Length == 0 )en = " gb2312 " ;
if (en.ToLower() == " iso-8859-1 " )en = " gb2312 " ;
StreamReaderreader
= 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;MSIE7.0;NutsSoft.com.cn) " ;

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

你可能感兴趣的:(request)