#delphi
#delphi
Вопрос:
Я использую TNetHttpRequest и TNetHTTPClient для отправки post-данных на URL-адрес API следующим образом:
Params := TMultiPartFormData.Create;
Params.AddFile('file_upload', 'c:myfile.txt','application/octet-stream');
NetHTTPRequest1.Post('https://myurl.com', Params);
Эта работа завершается в Windows 10, но в новой версии Windows 7 Home я получаю ошибку
Ошибка отправки данных (12175) Произошла ошибка безопасности
Я посмотрел номер ошибки Microsoft ЗДЕСЬ
ОШИБКА_WINHTTP_SECURE_FAILURE
12175
Одна или несколько ошибок были обнаружены в сертификате уровня защищенных сокетов (SSL), отправленном сервером. Чтобы определить, какой тип ошибки был
обнаружен, проверьте наличие
уведомления WINHTTP_CALLBACK_STATUS_SECURE_FAILURE в функции обратного вызова состояния. Для получения дополнительной информации см.
WINHTTP_STATUS_CALLBACK.
Но я действительно не знаю, как вызвать эти функции обратного вызова или что вызывает эту ошибку?
Комментарии:
1. Когда вы вводите свой URL
https://myurl.com
-адрес в браузере, сообщает ли он об ошибке сертификата?2. @J.R. Нет……..
Ответ №1:
Я решил это, сняв галочку с помощью SSL2
и SSL3
из NetHTTPClient1
и я использовал только TLS
Комментарии:
1. И? Это решило вашу проблему? Если да, пожалуйста, укажите это. В противном случае, если вы просто указываете то, что вы пробовали, но это не сработало, тогда это должно было быть опубликовано в качестве комментария вместо ответа.
2. конечно, это сработало, поэтому я опубликовал ответ!
Ответ №2:
Я столкнулся с той же ошибкой в Windows 7 Pro, которую легко воспроизвести с помощью Delphi 10.3. Пример «HttpAsyncDownload».
Я протестировал скомпилированное приложение в Windows 10, где оно работает безупречно.
Наконец, я нашел следующую страницу, которая решила проблему для меня: https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
Вкратце, поддержка безопасности транспортного уровня (TLS) 1.1 и TLS 1.2 активирована для Windows 7. Я использовал «простое исправление», которое позволяет это в масштабах всей системы, а также для Internet Explorer.
Наконец, приведенный выше пример приложения «HttpAsyncDownload» работает в Windows 7 Pro безупречно.