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

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



