1、虽然MSDN说InternetQueryDataAvailable、InternetReadFile这两个API是同步的,但实际上这两个API也可以异步调用。当调用这两函数时,如果返回FALSE,且GetLastError返回ERROR_IO_PENDING,那么表示这是一个异步调用。对于异步调用可以采用事件进行同步。当WaitForSingleObject返回时,数据已经拷贝到我们的缓冲区了,切记。。。
2、正如帮助文档所言,InternetQueryDataAvailable是不可靠的。因为这个API将响应头的"Content-Length" 认为文件的长度,但是“ Content-Length”是不准的。所以尽量少使用这个API。
3、在异步调用下,必须在这两个API的调用前,进行一次WaitForSingleObject,否则后果无法想象。