包头少信息 :添加包头信息
正常情况下,ucenter请求程序应该返回的是”1″, 用浏览器获取到的是正常的。然而通过api调用返回的是一串乱码:转换成16进制为“ 1f8b 0800 0000 0000 0003 3204 0000 00ff ff03 00b7 efdc 8301 0000 000a”。
网上搜索了一下发现“1f8b 0800 0000 0000”应该是gzip的文件头,所以更加确定了问题出现在gzip上。
在尝试了将nginx关闭gzip后,发现问题依旧。然后发现原来php启用了,自动gzip。于是在php.ini中将 zlib.output_compression = Off 关掉后,问题解决!
//打开HTTP请求句柄
hHttpRequest = ::HttpOpenRequest(hHttpConnect,
_T("GET"),
szUrlPath,
HTTP_VERSION,
NULL,
NULL,
INTERNET_FLAG_NO_UI | INTERNET_FLAG_DONT_CACHE,
1);
if (NULL == hHttpRequest)
{
goto RET;
}
BOOL bRet;
TCHAR headerLanguage[] = _T("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
TCHAR headerEncoding[] = _T("Accept-Encoding: deflate, sdch";);
TCHAR headerCharset[] = _T("Accept-Language: zh-CN,zh;q=0.8");
TCHAR headerContentType[] = _T("User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36";);
bRet = HttpAddRequestHeaders(hHttpRequest, headerLanguage, -1, HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE);
bRet = HttpAddRequestHeaders(hHttpRequest, headerEncoding, -1, HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE);
bRet = HttpAddRequestHeaders(hHttpRequest, headerCharset, -1, HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE);
bRet = HttpAddRequestHeaders(hHttpRequest, headerContentType, -1, HTTP_ADDREQ_FLAG_ADD|HTTP_ADDREQ_FLAG_REPLACE);
if (!::HttpSendRequestW(hHttpRequest, NULL, 0, NULL, NULL)) //向服务器发送这个请求
{
goto RET;
}