wininet编程 获取的网页是乱码解决思路
wininet编程 获取的网页是乱码
简化程序如下:
CInternetSession m_pDownSession;
m_pHttpConn = m_pDownSession.GetHttpConnection(_T("www.baidu.com"));
m_pHttpFile = m_pHttpConn->OpenRequest(CHttpConnection::HTTP_VERB_GET, _T("/index.php"));
m_pHttpFile->AddRequestHeaders(_T("GET HTTP/1.1\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Host:www.baidu.com\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Accept:*/*\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Accept-Language:zh-cn"));
m_pHttpFile->AddRequestHeaders(_T("User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0)\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Connection:Keep-Alive\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Accept-Encoding: gzip, deflate\r\n"));
m_pHttpFile->AddRequestHeaders(_T("\r\n"));
m_pHttpFile->SendRequest();
m_pHttpFile->QueryInfoStatusCode(d_status);
CStdioFile book_file;
book_file.Open(_T("C:\\baidu.txt"), CFile::modeCreate | CFile::modeReadWrite);
char buf[1024];
int num;
while((num = m_pHttpFile->Read(buf, 1024))) {
book_file.Write(buf, num);
}
m_pDownSession.Close();
m_pHttpConn->Close();
m_pHttpFile->Close();
book_file.Close();
MessageBox("OK");
}
IDE环境是VC6.0 默认的编码。怎么才可以获得正确的显示数据呢?
------解决方案--------------------
Accept-Encoding: gzip, deflate
把这个gzip去掉看看。
------解决方案--------------------
简化程序如下:
CInternetSession m_pDownSession;
m_pHttpConn = m_pDownSession.GetHttpConnection(_T("www.baidu.com"));
m_pHttpFile = m_pHttpConn->OpenRequest(CHttpConnection::HTTP_VERB_GET, _T("/index.php"));
m_pHttpFile->AddRequestHeaders(_T("GET HTTP/1.1\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Host:www.baidu.com\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Accept:*/*\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Accept-Language:zh-cn"));
m_pHttpFile->AddRequestHeaders(_T("User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0)\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Connection:Keep-Alive\r\n"));
m_pHttpFile->AddRequestHeaders(_T("Accept-Encoding: gzip, deflate\r\n"));
m_pHttpFile->AddRequestHeaders(_T("\r\n"));
m_pHttpFile->SendRequest();
m_pHttpFile->QueryInfoStatusCode(d_status);
CStdioFile book_file;
book_file.Open(_T("C:\\baidu.txt"), CFile::modeCreate | CFile::modeReadWrite);
char buf[1024];
int num;
while((num = m_pHttpFile->Read(buf, 1024))) {
book_file.Write(buf, num);
}
m_pDownSession.Close();
m_pHttpConn->Close();
m_pHttpFile->Close();
book_file.Close();
MessageBox("OK");
}
IDE环境是VC6.0 默认的编码。怎么才可以获得正确的显示数据呢?
------解决方案--------------------
Accept-Encoding: gzip, deflate
把这个gzip去掉看看。
------解决方案--------------------