I have a scenario where I need to see the request headers that are being sent to the server.
Using the option flag WINHTTP_QUERY_FLAG_REQUEST_HEADERS in WinhttpQueryHeaders I tried but I received an error 12150 (ERROR_WINHTTP_HEADER_NOT_FOUND).
My code (Assume hRequest has a not null value):
LPVOID getRequestHeaders(HINTERNET hRequest)
{
LPVOID tempHeaderBuffer = NULL;
DWORD dwSize = 0;
WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_URI | WINHTTP_QUERY_FLAG_REQUEST_HEADERS, WINHTTP_HEADER_NAME_BY_INDEX, NULL, &dwSize, WINHTTP_NO_HEADER_INDEX);
cout << GetLastError();
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
tempHeaderBuffer = (LPWSTR)malloc(dwSize * sizeof(LPWSTR) + 5);
if (!WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_URI | WINHTTP_QUERY_FLAG_REQUEST_HEADERS, WINHTTP_HEADER_NAME_BY_INDEX, tempHeaderBuffer, &dwSize, WINHTTP_NO_HEADER_INDEX))
{
cout << GetLastError();
}
else
{
printf("GetHTTPResponse : Header Request Contents : \n\n%S", tempHeaderBuffer);
}
}
return tempHeaderBuffer;
}
What am I doing wrong in here? Any suggestions? I have referred to other similar questions but they aren't solved.