从个人经验来看,目前的httpwebrequest不是一个很成熟的类。
最关键的问题是它在处理 Cookies上有些混乱,而Cookies是你访问那些需要认证网页的关键。
总结一下Httpwebrequest编程中主要的问题:
- Cookies问题(重中之中);
- 浏览器版本问题;
- Http头的问题,其中需要注意post的content-type和Http头中是否被加入了不标准的内容(这个问题太隐蔽);
- 返回的html数据和浏览器对应的页面html不一致;
- 提交数据的编码问题,编码问题很讨厌。由于编码采用了错误方式,我的msn space被封了几个小时;
- Hidden问题,有些服务器会写一个hidden到页面,这个Hidden也需要提交回去。
最后友情赠送方法二个:
- 获取一个时间值,很多网站使用了这个时间值,对应于javascript中的gettime方法;
- MD5加密;
public static string GetMilliseconds()
...{
double d = DateTime.Now.Subtract(new DateTime(1970, 1, 1, 8, 0, 0)).TotalMilliseconds;
return Convert.ToInt64(d).ToString();
}
public static string GetMD5(string str)
...{
MD5 md5 = new MD5CryptoServiceProvider();
return BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(str))).ToLower().Replace("-", "");
}
本文探讨了使用 HttpWebRequest 类进行编程时遇到的主要问题,包括 Cookies 处理、浏览器版本兼容性、HTTP 头设置、返回 HTML 数据一致性及数据编码等,并提供了获取时间戳和 MD5 加密的方法。

被折叠的 条评论
为什么被折叠?



