Сложность преобразования кода веб-сокета Python в JavaPython

Программы на Python
Ответить
Anonymous
 Сложность преобразования кода веб-сокета Python в Java

Сообщение Anonymous »

Я пытаюсь преобразовать некоторый код веб-сокета Python в Java (код, который взаимодействует с потребительским устройством :)

Код: Выделить всё

        ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = ssl.CERT_NONE
ws_connection_local = connect(f"wss://{target_ip}:{WEBSOCKET_SSL_PORT}", ssl_context=ssl_context)
Моя Java .. (на самом деле отличная) замена...

Код: Выделить всё

CountDownLatch latch = new CountDownLatch(1);

String url = "wss://$host:$port"
WebSocket ws = HttpClient
.newHttpClient()
.newWebSocketBuilder()
.buildAsync(URI.create(url), new WebSocketClient(latch))
после чего я получаю сообщение об ошибке:

Код: Выделить всё

java.util.concurrent.CompletionException: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Полагая, что проблема связана с сертификатами SSL или проверкой хоста, я последовал этому совету перед открытием соединения: Как отключить проверку SSL?
и установите доверие ко всем сертификатам с рекомендуемыми неактивными HttpsURLConnection.setDefaultSSLSocketFactory и т. д., а также HttpsURLConnection.setDefaultHostnameVerifier и т. д. Однако это не помогло, я получаю ту же ошибку. Я также установил точки останова отладчика в TrustManager и HostnameVerifier, чтобы увидеть, были ли они вызваны, а они нет.

Подробнее здесь: https://stackoverflow.com/questions/792 ... de-to-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»