2010-12-07 23 views
1

Hallo、このwininet関数に重大な問題があります.Windows 7でプログラムを実行すると、すべて正常に動作しますが、Windows XPサービスpack 3.時には、HttpSendRequstが完了するのに時間がかかりすぎます。なぜ、同じ要求に対して、なぜか、時には、わからないことがあります。自分のprogでウェブサイトをロードしています。HttpSendRequest WININETスタック - 長い時間がかかる - WINDOWS XP

Win7とWin7の違いは何ですか?私は全力を尽くして努力しました。たとえば、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()); 

答えて

0

リクエストが正常に完了していることを確認していますか?テキスト付きの応答コードが必要です。さもなければあなたの速い要求は異常終了によって引き起こされるかもしれません。

完全なコードサンプルの場合は、HttpEndRequestを追加することをおすすめします。

+0

HttpEndRequestは、私が知る限り、httpSendRequestEx関数のみです。 – Rampage

+0

Opps、そうです...とにかく、私は各リクエストが正常に完了したことを確認します。 – Eugene