AsyncWinHttp is a simple wrapper of
WinHTTP to achieve asynchronous HTTP.
WinHtpp API is a replacement of
WinINet API (see About WinHTTP for more information of why Microsoft recommends to use
The library provides a very simple interface, the user can register a callback function when initializing the class. And the callback will be invoked when HTTP finished. The interface is shown as:
This code is based on the sample of
WinHTTP from MSDN, with a wrapper for simple use.
Using the Code
To use the library is very simple, all you need is the two files:
First, you need to define your callback functions. These functions will be invoked when HTTP finished (whether succeeded or failed):
void WinHttp_CallBack(AsyncWinHttp* asyncWinHttp)
if (asyncWinHttp->status.Status() == ASYNC_WINHTTP_ERROR)
Now you can invoke the request to HTTP resources:
http.SetTimeout(3 * 60 * 1000); http.SendRequest(L"http://www.google.cn");
Of course, you can use a Windows event to wait for the asynchronous HTTP call to finish, as shown in the demo, but I think most of you will not do so, since we need a really asynchronous HTTP.
- 11th December, 2009: Initial post