又一次被微软的API欺骗了感情,总结使用HttpSendRequest的经验如下,与正在或将要与我经历同样痛苦的朋友分享:
- HttpSendRequest不支持异步模式,虽然API文档说可以,但是在其它官方文章中已证实不可以;要用异步方式完成任务,需要通过使用线程来自己封装。
- HttpSendRequest使用的INTERNETHANLE要每次通过HttpOpenRequest获取,不能重用,否则可能会出现无法读取返回数据或数据重复等错误;虽然API文档说只要每次把上次的数据取完就可以,但这是经历了无数痛苦的unit test后换来的经验。
- 发送httpSendRequest后,需要使用InternetReadFile来读取,重复多次读,直到返回数据为0byte为止。
- 错误代码在 http://support.microsoft.com/kb/193625 ,API文档中找不到。