关于SendRequest的问题
在网络传输数据的时候,
主线程:
int uParam = 5000;
int iTimeOut = 5000, iSendTimeOut = 1000, iRecvTimeOut = 7000,
iDataSendTO = 1000, iDataRecvTO = 7000, iRetry = 5;
inetSession.SetOption(INTERNET_OPTION_MAX_CONNS_PER_SERVER,
&uParam,sizeof(int));
inetSession.SetOption(INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER,
&uParam,sizeof(int));
inetSession.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,
&iTimeOut, sizeof(int));
inetSession.SetOption(INTERNET_OPTION_SEND_TIMEOUT,
&iSendTimeOut, sizeof(int));
inetSession.SetOption(INTERNET_OPTION_RECEIVE_TIMEOUT,
&iRecvTimeOut, sizeof(int));
inetSession.SetOption(INTERNET_OPTION_DATA_SEND_TIMEOUT,
&iDataSendTO, sizeof(int));
inetSession.SetOption(INTERNET_OPTION_DATA_RECEIVE_TIMEOUT,
&iDataRecvTO, sizeof(int));
inetSession.SetOption(INTERNET_OPTION_CONNECT_RETRIES,
&iRetry, sizeof(int));
CString strWSData(_T(""));
CString strError(_T(""));
INTERNET_PORT port = nPort;
pHttpConn = inetSession.GetHttpConnection(strIP, port);
if (NULL == pHttpConn)
{
......
}
pHttpFile = pHttpConn->OpenRequest(CHttpConnection::HTTP_VERB_POST, (LPCTSTR)strURI);
if (NULL == pHttpFile)
{
if(pHttpConn)
{
pHttpConn->Close();
delete pHttpConn;
pHttpConn = NULL;
}
inetSession.Close();
}
pHttpFile->AddRequestHeaders(_T("Connection: Keep-Alive"));
pHttpFile->AddRequestHeaders(_T("Content-Type:text/xml;charset=gb2312"));
pHttpFile->AddRequestHeaders(_T("Accept-Language:zh-cn"));
AfxMessageBox(L"1");
if(!pHttpFile->SendRequest(NULL, 0, szSoap, strlen(szSoap)))
{
......
}
AfxMessageBox(L"2");
pHttpFile->QueryInfoStatusCode(dwCheck);
AfxMessageBox(L"3");
......
有的时候弹出1后等10多分钟仍然没有弹出2;
有的时候弹出1后过1-2分钟,没有弹出2,但是可以其他操作,
设置超时也没有什么用,这个函数自身有多少BUG,怎么解决?我这里是同步调用
急……………………