有一个https的server,我用web方式访问,很快就能得到响应,但我在应用程序中第一次访问要等很久(甚至有1分钟到2分钟的时间)。有哪位专家遇到过这类问题?请给与解答。

解决方案 »

  1.   

    这些是我使用的代码:
    m_hInternet = InternetOpen(m_strAgentName, INTERNET_OPEN_TYPE_PRECONFIG , NULL, NULL, 0);
    m_hSession = InternetConnect(m_hInternet, 
    m_strServerName, 
    m_wPort,
    m_strUserName, 
    m_strPassword,
    INTERNET_SERVICE_HTTP,
    0,
    0); m_hRequest = HttpOpenRequest(m_hSession, 
    strVerb,
    m_strObjectName,
    HTTP_VERSION,//NULL
    "",
    NULL,
    m_secureFlags, 
    m_ReqID);
           HttpSendRequest( m_hRequest, // handle by returned HttpOpenRequest
    szContentType, // additional HTTP header
    (DWORD)strlen(szContentType), // additional HTTP header length
    reinterpret_cast<LPVOID>(buf),// additional data in HTTP Post or HTTP Put
    len); // additional data length
      

  2.   

    其中用到的标志
    m_secureFlags = INTERNET_FLAG_RELOAD|INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_SECURE|INTERNET_FLAG_IGNORE_CERT_CN_INVALID;
      

  3.   

    应该是你的程序需要做密码初始化,需要较长时间.
    SSL使用RSA, RSA需要初始两个随机的大整数,很耗时间.
    浏览器通常事先准备好了一些大整数,随时备用.
      

  4.   

    HttpSendRequest函数执行的时候,需要很久,时间就花在这个函数上了
      

  5.   

    貌似无法. 
    当然你可以不用WinInet, 自己用SSL来写http协议
      

  6.   

    没写过ssl,只会用wininet,这是从一些网站搜来的一些代码。