Beispiel #1
0
BOOL RemoveConnectionProxy(char* connectionNameStr = NULL)
{
    INTERNET_PER_CONN_OPTION_LIST conn_options;
    BOOL    bReturn;
    DWORD   dwBufferSize = sizeof(conn_options);

    conn_options.dwSize = dwBufferSize;

    conn_options.pszConnection = (TCHAR*)connectionNameStr; //NULL - LAN
    conn_options.dwOptionCount = 1;
    conn_options.pOptions = new INTERNET_PER_CONN_OPTION[conn_options.dwOptionCount];

    if(!conn_options.pOptions)
        return FALSE;

    conn_options.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
    conn_options.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT  ;

    bReturn = InternetSetOptionA(NULL,INTERNET_OPTION_PER_CONNECTION_OPTION, &conn_options, dwBufferSize);

    delete [] conn_options.pOptions;
    InternetSetOptionA(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
    InternetSetOptionA(NULL, INTERNET_OPTION_REFRESH , NULL, 0);

    return bReturn;
}
Beispiel #2
0
bool TestWininet(std::string url){
    HINTERNET hNet = InternetOpenA(NULL,
                                   INTERNET_OPEN_TYPE_PRECONFIG,
                                   NULL,
                                   NULL,
                                   0);
    if (hNet == NULL)
    {
        std::cout << "InternetOpenA error :" << ::GetLastError() << std::endl;
        return false;
    }

	// 默认TIMEOUT时间2秒
    static DWORD dwTimeout = 2000;
	static DWORD dwRetries = 3;
    InternetSetOptionA(hNet, INTERNET_OPTION_CONNECT_TIMEOUT, &dwTimeout, sizeof(DWORD));
    InternetSetOptionA(hNet, INTERNET_OPTION_CONNECT_RETRIES, &dwRetries, sizeof(DWORD));

    HINTERNET hUrlFile = InternetOpenUrlA(hNet, 
                                          url.c_str(), 
                                          NULL,
                                          0,
                                          INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD,
                                          0);
    if (hUrlFile == NULL)
    {        
        std::cout << url << "InternetOpenUrlA error :" << ::GetLastError() << std::endl;
 		InternetCloseHandle(hNet);
        return false;
    }
    
 	InternetCloseHandle(hUrlFile);
    InternetCloseHandle(hNet) ;
    return true;
}
Beispiel #3
0
BOOL SetConnectionProxy( char * proxyAdressStr , char * connNameStr = NULL)
{
    INTERNET_PER_CONN_OPTION_LIST conn_options;
    BOOL    bReturn;
    DWORD   dwBufferSize = sizeof(conn_options);
    conn_options.dwSize = dwBufferSize;
    conn_options.pszConnection = (TCHAR*)connNameStr;//NULL == LAN

    conn_options.dwOptionCount = 3;
    conn_options.pOptions = new INTERNET_PER_CONN_OPTION[3];

    if(!conn_options.pOptions)
        return FALSE;

    conn_options.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
    conn_options.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT|PROXY_TYPE_PROXY;

    conn_options.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
    conn_options.pOptions[1].Value.pszValue = (TCHAR*)proxyAdressStr;
    conn_options.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
    conn_options.pOptions[2].Value.pszValue = (TCHAR*)"<local>";

    bReturn = InternetSetOptionA(NULL,INTERNET_OPTION_PER_CONNECTION_OPTION, &conn_options, dwBufferSize);

    delete [] conn_options.pOptions;

    InternetSetOptionA(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
    InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
    return bReturn;
}