我知道WinHttpOpenRequest
指定了应用程序用于与服务器通信的HTTP的版本。
如果我使用不支持的 HTTP版本发送请求,我想了解服务器的行为方式。但该功能会自动将版本更改为 HTTP / 1.1 。文档中没有提到我们只能使用特定版本。
#include <serverutils.h>
void main()
{
HINTERNET hSession=NULL,hRequest=NULL,hConnect=NULL;
BOOL bResults=FALSE;
hSession = WinHttpOpen(L"Sample Program", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHTTP_NO_PROXY_BYPASS, 0 );
if(hSession)
{
hConnect = WinHttpConnect(hSession,L"172.21.206.60",8080,0);
}
if(hConnect)
{
hRequest = WinHttpOpenRequest(hConnect,L"GET",L"/",L"HTTP/1.3" ,WINHTTP_NO_REFERER,WINHTTP_DEFAULT_ACCEPT_TYPES,0);
}
if(hRequest)
{
bResults = WinHttpSendRequest(hRequest,WINHTTP_NO_ADDITIONAL_HEADERS,0,WINHTTP_NO_REQUEST_DATA,0,0,0);
}
if(bResults)
{
bResults = WinHttpReceiveResponse(hRequest,NULL);
}
getRequestHeaders(hRequest);
_getch();
}
无论如何,我可以使用不受支持的HTTP版本发送请求吗?如果WinHTTP不支持此功能,其他任何库都会这样做吗?