wininet 获取 http 头

场景:WinInet获取返回的HTTP头的有关问题

WinInet获取返回的HTTP头的问题
大家好。
写了个http类,负责发送http请求和接收返回,一直运行良好。以前没有处理返回的http头,现在需要处理,所以增加了一些代码接收返回的http头,但是失败了,接收不到。关键代码如下(只是零散的代码片段)——

C/C++ code

char *pHeadData = new char[100*1024];

INTERNET_BUFFERSA inetBuf;
inetBuf.lpcszHeader = pHeadData;
inetBuf.dwHeadersLength = 100*1024;

InternetReadFileExA(hRequest, &inetBuf, IRF_ASYNC, dwContext);



理论上说,当InternetReadFileExA执行完以后(函数执行也是成功的),pHeadData就应该能获取到返回的http头了吧?但是没有呢,pHeadData仍然是“屯屯屯屯屯屯屯屯屯屯屯屯屯...”。请问我这样写方式对吗?请指教,谢谢!

------解决方案--------------------
用InternetGetLastResponseInfo查看是什么错误了

还有就是
INTERNET_BUFFERSA inetBuf;
memset(&inetBuf,0,sizeof(INTERNET_BUFFERSA));
inetBuf.dwStructSize= sizeof(INTERNET_BUFFERSA);
inetBuf.lpcszHeader = pHeadData;
inetBuf.dwHeadersLength = 100*1024;
------解决方案--------------------
探讨

最新发现,换用HttpQueryInfo获取http头
C/C++ code

DWORD dwLen = 100*1024;
DWORD dwLen2 = 100*1024;

BOOL b = HttpQueryInfo(hRequest, HTTP_QUERY_RAW_HEADERS_CRLF | HTTP_QUERY_FLAG_REQUEST_HEADERS, pHeadData, ……