Winhttpsetoption не устанавливает параметр WINHTTP_OPTION_SECURE_PROTOCOLS, возвращая 0 в качестве возвращаемого значения.
Интерфейс IWinHttpRequest работал нормально до тех пор, пока версия TLS не была изменена со стороны сервера. Версия TLS сервера была изменена на TLSv1. 1 и выше.
из-за этого изменения я не могу получить никакого ответа от сервера.
Поэтому я решил использовать WinHttpSetOption для установки версии протокола. но это не работает.
Пожалуйста, кто-нибудь может мне помочь?
Что я уже пробовал:
Интерфейс IWinHttpRequest работал нормально до тех пор, пока версия TLS не была изменена со стороны сервера. Версия TLS сервера была изменена на TLSv1. 1 и выше.
из-за этого изменения я не могу получить никакого ответа от сервера.
Поэтому я решил использовать WinHttpSetOption для установки версии протокола. но это не работает.
Ниже приведен код, в котором я устанавливаю параметры.
dwVal = WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 | WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2; bRet = WinHttpSetOption(request_,WINHTTP_OPTION_SECURE_PROTOCOLS,&dwVal,sizeof(dwVal)); if(!bRet) { TRACE("error - " , GetLastError()); break; }
Вышеприведенный код не дает никакого кода ошибки, хотя код возврата для setoption равен нулю.
Jochen Arndt
Как вы вызываете WinHttpSetOption (показать код с параметрами и связанными переменными)?
Что такое код ошибки (вызов GetLastError)?
Пожалуйста, используйте зеленую ссылку "улучшить вопрос", чтобы добавить эту информацию к вашему вопросу.
Jochen Arndt
TRACE ("error -", GetLastError());
получит код ошибки, но не распечатает его.
Воспользуйся:
TRACE ("error - %d\n", GetLastError());