こんにちは、私はこの wininet 機能に深刻な問題を抱えています。Windows 7 でプログラムを実行すると、すべてが完全に機能しますが、Windows XP Service Pack 3 で使用しようとすると、HttpSendRequst が完了するまでに時間がかかりすぎて、理由は本当にわかりませんし、同じリクエストに対して、ほぼ瞬時に終了することもあります。プログラムでウェブサイトを読み込んでいます。
wininet での Win 7 と XP の違いは何ですか? 私はほとんどすべてを試しましたが、うまくいきません。たとえば、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());