WinInet: INTERNET_OPEN_TYPE_PRECONFIG?
От: Аноним  
Дата: 20.01.11 10:39
Оценка:
Приветствую!

Получаю доступ к http посредством WinInet'а. Делаю вот так:

    HINTERNET hIntSession = NULL, hHTTPSession = NULL, hHTTPRequest = NULL;
    const CHAR *AcceptedType[] = {"*/*", 0};
    hIntSession = InternetOpenA("Microsoft Internet Explorer", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    hHTTPSession = InternetConnectA( hIntSession, host, 80, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
    hHTTPRequest = HttpOpenRequestA( hHTTPSession, "POST", path, NULL, NULL, AcceptedType, 
                                     INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD,  0 );
    if (!hIntSession || !hHTTPSession || !hHTTPRequest) {
        *dwResultLen = 0;
        return -1;
    }

    CHAR headerfield[] = "Content-Type: application/x-www-form-urlencoded";
    HttpSendRequestA(hHTTPRequest, headerfield, (DWORD) strlen(headerfield), postdata, (DWORD) strlen(postdata));


Это прекрасно работает, когда интернет прямой. На машине, где интернет через прокси + авторизация ntlm — не работает.
HttpSendRequestA завершается неудачей, а GetLstError возвращает 12029 ERROR_INTERNET_CANNOT_CONNECT.
В IE инет есть. Можно ли использовать WinInet так, чтобы в моём приложении тоже был интернет, причём вся конфигурация бралась автоматически? Я думал, что INTERNET_OPEN_TYPE_PRECONFIG как раз для такого дела.. Или я что-то делаю не так?

Спасибо!
Re: WinInet: INTERNET_OPEN_TYPE_PRECONFIG?
От: Аноним  
Дата: 20.01.11 11:00
Оценка:
Почитал я тут форум на эту тему — неужели без использования

InternetSetOption(hRequest, INTERNET_OPTION_PROXY_USERNAME, UName, strlen(UName)+1);
InternetSetOption(hRequest, INTERNET_OPTION_PROXY_PASSWORD, Pass, strlen(Pass)+1);


Не решить проблему? Я хочу чтобы все параметры были как в IE, он то не просит дополнительно ввести login/pass..
Re[2]: WinInet: INTERNET_OPEN_TYPE_PRECONFIG?
От: Аноним  
Дата: 20.01.11 11:27
Оценка:
А>Не решить проблему? Я хочу чтобы все параметры были как в IE, он то не просит дополнительно ввести login/pass..

Если в FireFox'е выставить галку "использовать системные настройки прокси", то всё работает, логин\пасс не спрашивает! Т.е. возможность такая точно есть..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.