Приветствую!
Программа отсылает запрос на сервер через прокси с 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 — не помогло.