HTTP请求问题
我用以下方法去获取服务器上的响应内容,为什么在有的电脑上没有问题,而有些电脑上通过抓包看只有第一次时往服务器发包了,后面再没有向服务器发送请求包。可是跟代码看走的流程都是一样的,获取到的响应内容一直是第一次返回的。POST方式也试过了,请问各位是什么原因?
DWORD dwType = 0;
CString cstrServer;
CString cstrObject;
CString cstrRecv;
INTERNET_PORT wPort = 0;
CHttpConnection* pConnection = NULL;
CHttpFile* pFile = NULL;
CInternetSession session;
BOOL bResult = FALSE;
char szBuf[1025] = {0};
CString cstrUrl = 请求URL;
try
{
bResult = AfxParseURL(cstrUrl, dwType, cstrServer, cstrObject, wPort);
if (!bResult)
return ;
DWORD dwTimeOut = 0;
session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 1000);
pConnection = session.GetHttpConnection(cstrServer, wPort);
if (NULL == pConnection)
return;
pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_GET, cstrObject);
if (NULL == pFile)
return;
if (!pFile->AddRequestHeaders(L"Cache-Control: no-cache"))
return;
if (!pFile->SendRequest())
return ;
DWORD dwStatusCode = 0 ;
pFile->QueryInfoStatusCode(dwStatusCode);
if (HTTP_STATUS_OK == dwStatusCode)
{
while(pFile->Read(szBuf, 1024) > 0)
{
cstrRecv += szBuf;
ZeroMemory(szBuf, 1025);
}
}
pFile->Close();
pConnection->Close();
session.Close();
}
catch (CInternetException* pEx)
{
LPTSTR aaaa;
pEx->GetErrorMessage(aaaa, MAX_PATH);
return;
}