WinHTTP会话概述
Microsoft Windows HTTP服务(WinHTTP)公开了一组C / C ++函数,使您的应用程序能够访问Web上的HTTP资源。 本主题概述了如何使用这些函数与HTTP服务器交互。
0x01.使用WinHTTP API访问Web
下图显示了与HTTP服务器交互时通常调用WinHTTP函数的顺序。 阴影框表示生成HINTERNET句柄的函数,而平面框表示使用这些句柄的函数。
0x02.初始化WinHTTP
在与服务器交互之前,WinHTTP
必须通过调用WinHttpOpen
进行初始化。 WinHttpOpen
创建会话上下文以维护有关HTTP
会话的详细信息,并返回会话句柄。使用此句柄,WinHttpConnect
功能然后能够指定目标HTTP
或安全超文本传输协议(HTTPS
)服务器。
注意: 对特定资源发出请求之前,对WinHttpConnect
的调用不会导致与HTTP
服务器的实际连接。
0x03.打开请求
WinHttpOpenRequest
函数打开特定资源的HTTP
请求,并返回一个可以被其他HTTP
函数使用的HINTERNET
句柄。 WinHttpOpenRequest
在调用时不会将请求发送到服务器。 WinHttpSendRequest
函数实际上通过网络建立连接并发送请求。
以下示例显示了使用默认选项调用WinHttpOpenRequest
的示例。
HINTERNET hRequest = WinHttpOpenRequest(hConnect,L“GET”,NULL,NULL,NULL,NULL,0);
0x04.添加请求标头
WinHttpAddRequestHeaders
函数允许应用程序将附加的自由格式请求头附加到HTTP
请求句柄。它适用于需要精确控制发送到HTTP
服务器的请求的复杂应用程序。
WinHttpAddRequestHeader