18,356
社区成员
发帖
与我相关
我的任务
分享
string CTestDlg::doGet1(CString istrObjet)
{
string sErrMg;
string httpsource;
BOOL b=TRUE;
HINTERNET m_hConnection = InternetConnect(
m_hInternet,
m_strServer,
m_nPort,
NULL,
NULL,
INTERNET_SERVICE_HTTP,
INTERNET_FLAG_NO_UI,
NULL);
if (FALSE == m_hConnection)
{
InternetCloseHandle(m_hConnection);
InternetCloseHandle(m_hInternet);
sErrMg=_T("网络未连接上:建立网络连接失败");
return sErrMg;
}
static LPCTSTR s_szAcceptTypes[] = { _T("*/*"), NULL };
HINTERNET m_hRequest = HttpOpenRequest(
m_hConnection, _T("GET"),
istrObjet,
_T("HTTP/1.0"), NULL,
s_szAcceptTypes,
INTERNET_FLAG_NO_UI | INTERNET_FLAG_KEEP_CONNECTION, // | ((m_url.GetScheme() == ATL_URL_SCHEME_HTTPS) ? INTERNET_FLAG_SECURE : 0)
NULL);
if (FALSE == m_hRequest)
{
InternetCloseHandle(m_hRequest);
InternetCloseHandle(m_hConnection);
InternetCloseHandle(m_hInternet);
sErrMg=_T("网络未连接上:打开网络连接失败");
return sErrMg;
}
CString tAddHost;
tAddHost=_T("Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*");
HttpAddRequestHeaders(m_hRequest,tAddHost,tAddHost.GetLength( ),HTTP_ADDREQ_FLAG_ADD);
tAddHost=_T("Accept-Language: zh-CN");
HttpAddRequestHeaders(m_hRequest,tAddHost,tAddHost.GetLength( ),HTTP_ADDREQ_FLAG_ADD);
tAddHost=_T("Accept-Encoding: gzip, deflate");
HttpAddRequestHeaders(m_hRequest,tAddHost,tAddHost.GetLength( ),HTTP_ADDREQ_FLAG_ADD);
tAddHost=_T("Connection: Keep-Alive");
HttpAddRequestHeaders(m_hRequest,tAddHost,tAddHost.GetLength( ),HTTP_ADDREQ_FLAG_ADD);
b = HttpSendRequest(m_hRequest, NULL, 0,
NULL, 0);
if (FALSE == b)
{
InternetCloseHandle(m_hRequest);
InternetCloseHandle(m_hConnection);
InternetCloseHandle(m_hInternet);
sErrMg=_T("网络未连接上:向服务器发送请求失败");
return sErrMg;
}
TCHAR cookbuffer[512];
DWORD TRF=512;
DWORD TRF1=0;
b=HttpQueryInfo(m_hRequest, HTTP_QUERY_SET_COOKIE, cookbuffer,
&TRF,&TRF1);
if(FALSE==b)
{
sErrMg=_T("网络未连接上:未获取COOKIE");
}
// int iStatus = GetInternetRequestStatusCode(m_hRequest);
/*
if(!(iStatus>= 200&& iStatus<300 ))
{
InternetCloseHandle(m_hRequest);
InternetCloseHandle(m_hConnection);
InternetCloseHandle(m_hInternet);
sErrMg.Format(_T("网络未连接上:打开远程文件出错,错误码:%d"), iStatus);
return FALSE;
}*/
byte pData[65535];
DWORD dwReadedLen;
DWORD dwWrittenLen;
while(1)
{
b = InternetReadFile(m_hRequest, (LPVOID)pData, sizeof(pData), &dwReadedLen);
if (b == FALSE)
{
// CloseHandle(hfile);
InternetCloseHandle(m_hRequest);
InternetCloseHandle(m_hConnection);
// InternetCloseHandle(m_hInternet);
sErrMg=_T("网络未连接上:读取文件失败");
return sErrMg;
}
if(dwReadedLen == 0)
{
break;
}
pData[dwReadedLen]=0;
httpsource+=(char*)pData;
}
// CloseHandle(hfile);
InternetCloseHandle(m_hRequest);
InternetCloseHandle(m_hConnection);
//InternetCloseHandle(m_hInternet);
return httpsource;
}