WinInet, HttpSendRequest работает со второй попытки
От: Аноним  
Дата: 20.01.11 16:17
Оценка:
Приветствую!

Программа отсылает запрос на сервер через прокси с ntlm авторизацией. Проблема заключается в том, что первый вызов HttpSendRequest возвращает FALSE, а GetLastError() возвращает 12029 ERROR_INTERNET_CANNOT_CONNECT. Если ту же функцию вызвать повторно — всё в порядке. Т.е. я изменил программу вот так:

    if (!HttpSendRequestA(hHTTPRequest, headerfield, (DWORD) strlen(headerfield), postdata, (DWORD) strlen(postdata))) {
        printf("Error 1: %d\n", GetLastError());
        if (!HttpSendRequestA(hHTTPRequest, headerfield, (DWORD) strlen(headerfield), postdata, (DWORD) strlen(postdata))) {        
           printf("Error 2: %d\n", GetLastError());
        }
    }


И всё работает! Конечно, можно так оставить, но хочется понимать почему именно так..
Единственное, что приходит в голову — при первом вызове авторизуется на прокси, а второй уже проходит нормально..
Пробовал задавать опции INTERNET_OPTION_CONNECT_RETRIES, INTERNET_OPTION_CONNECT_TIMEOUT — не помогло.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.