你好,我对这个 wininet 函数有严重问题,当我在 Windows 7 上运行我的程序时,一切正常,但是当我尝试在 Windows XP Service Pack 3 上使用它时。有时 HttpSendRequst 需要很长时间才能完成,我真的不知道为什么,有时对于相同的请求,它几乎立即完成。我正在用我的 prog 加载网站。
win 7 和 XP 在 wininet 中有什么区别?我几乎尝试了一切,但没有用。例如,为 Httpsendrequest 设置超时并再次重复或设置最大互联网连接数。但似乎没有任何效果,功能总是一样的。
如果可以的话请帮忙。
m_hInternet = InternetOpenA(m_strAgentName.c_str(), INTERNET_OPEN_TYPE_PRECONFIG ,
NULL, NULL, 0);
if (!m_hInternet) {
m_strLastError = "Cannot open internet";
m_lastErrorCode = GetLastError();
return false;
}
m_hSession = InternetConnectA(m_hInternet,
m_strServerName.c_str(),
m_wPort,
m_strUserName.c_str(),
m_strPassword.c_str(),
INTERNET_SERVICE_HTTP,
INTERNET_FLAG_KEEP_CONNECTION,
0);
m_hRequest = HttpOpenRequestA(m_hSession,
this->m_strMethod.c_str(),
m_strObjectName.c_str(),
NULL,
m_strReferer != "" ? m_strReferer.c_str() : NULL,
NULL,
INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_KEEP_CONNECTION,
m_ReqID);
bool result = HttpSendRequestA( m_hRequest,
this->m_strAddHeaders.size() == 0 ? NULL : this->m_strAddHeaders.c_str(),
this->m_strAddHeaders.size(),
(char*)this->m_strContent.c_str(),
this->m_strContent.size());