2010-12-07 2 views
1

Hallo,이 wininet 함수에 심각한 문제가있다. Windows 7에서 프로그램을 실행하면 모든 것이 완벽하게 작동하지만 Windows XP 서비스에서 사용하려고 할 때 팩 3. 때로는 HttpSendRequst를 완료하는 데 너무 오랜 시간이 걸리며, 실제로 요청한 이유와 경우에 따라서는 거의 즉시 종료됩니다. 내 prog로 웹 사이트를로드 중입니다.HttpSendRequest WININET 붙어 - 오랜 시간이 걸린다 - WINDOWS XP

win7에서 Win7과 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()); 

답변

0

요청이 완료되었는지 확인 하시겠습니까? 텍스트가 포함 된 응답 코드가 있어야합니다. 그렇지 않으면 빠른 요청이 비정상 종료로 인해 발생할 수 있습니다.

전체 코드 샘플 인 경우 HttpEndRequest을 추가하는 것이 좋습니다.

+0

HttpEndRequest는 내가 아는 한 httpSendRequestEx 함수 전용입니다. – Rampage

+0

Opps, 맞습니다. 어쨌든 각 요청이 성공적으로 완료되었는지 확인합니다. – Eugene

관련 문제