Я работаю над проектом Android с базой данных MySQL и выполняю серверную часть на Node.Js. У меня есть метод, который создает нового пользователя путем отправки данных через файл JSON в приложение Android: этот код для создания экземпляра Retrofit:
retrofit = new Retrofit.Builder()
.baseUrl("https://ipAddress:port/")
.addConverterFactory(ScalarsConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
этот код для связи с node.js:
Buyer buyer = (Buyer) user;
compositeSubs.add(myAPI.buyerSignUp(buyer.getEmail(), buyer.getName().split(" ")[0]
, buyer.getName().split(" ")[1], buyer.getPassword(), buyer.bringType(), buyer.getPhoneNumber())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(s -> { // onNext method
if (s.equals("false")) {
((AuthListener) callBack).onSignUp(s, false);
} else if (s.equals("true")) {
((AuthListener) callBack).onSignUp(s, true);
} else {
((AuthListener) callBack).onSignUp(s, false);
}
}, throwable -> { // onError method
Log.e(TAG, throwable.getMessage(), throwable);
}, () -> { // onComplete method
Log.d(TAG, "completed");
}));
и это исключение, которое я получил:
- Рукопожатие не удалось javax.net.ssl.SSLHandshakeException: Рукопожатиене удалось в com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake (OpenSSLSocketImpl.java:423) в okhttp3.internal.connection.RealConnection.connectTls (RealConnection.java:281) в okhttp3.internal.connection.RenectionalRealConnectJava: 251) в okhttp3.internal.connection.RealConnection.connect (RealConnection.java:151) в okhttp3.internal.connection.StreamAllocation.findConnection (StreamAllocation.java:192) в okhttp3.internal.connection.StreamAllocationLlocationConnect.java: 121) по адресу okhttp3.internal.connection.StreamAllocation.newStream (StreamAllocation.java:100) в okhttp3.internal.connection.ConnectInterceptor.intercept (ConnectInterceptor.java:42) в okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92) в ohttp3..proceed (RealInterceptorChain.java:67) в okhttp3.internal.cache.CacheInterceptor.intercept (CacheInterceptor.java:93) в okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.javattpternal).RealInterceptorChain.proceed (RealInterceptorChain.java:67) по адресу okhttp3.internal.http.BridgeInterceptor.intercept (BridgeInterceptor.java:93) по адресу okhttp3.internal.http.RealInterceptorChain.proceed (realInterceptawthin).RetryAndFollowUpInterceptor.intercept (RetryAndFollowUpInterceptor.java:120) по адресу okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:92) в okhttp3.internal.httporingetResponseWithInterceptorChain (RealCall.java:185) по адресу okhttp3.RealCall.execute (RealCall.java:69) по адресу retrofit2.OkHttpCall.execute (OkHttpCall.java:180) по адресу retrofit2.adapter.rxjava2.CableExubjA) в io.reactivex.Observable.subscribe (Observable.java:12036) в retrofit2.adapter.rxjava2.BodyObservable.subscribeActual (BodyObservable.java:34) в io.reactivex.Observable.subscribe (Observable.java:12036) в io.reactivex.internal.operators.observable.ObservableSubscribeOn $ SubscribeTask.run (ObservableSubscribeOn.java:96) в io.reactivex.Scheduler $ DisposeTask.run (Scheduler.java:579) в io.reactivex.internal.scununrs(ScheduledRunnable.java:66) в io.reactivex.internal.schedulers.ScheduledRunnable.call (ScheduledRunnable.java:57) в java.util.concurrent.FutureTask.run (FutureTask.java:266) в java.util.concrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:301) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:636) в java.lang.Thread.run (Thread.java:764), вызванный: javax.net.ssl.SSLProtocolException: рукопожатие SSL прервано: ssl = 0x8f76da40: сбой в библиотеке SSL, обычно ошибка протоколаошибка: 100000f7: подпрограммы SSL: OPENSSL_internal: WRONG_VERSION_NUMBER (внешний / boringssl / src / ssl / tls_record.c: 235 0x9f174e9f: 0x00000000) в com.android.org.conscrypt.Native_ryp.index.org ().conscrypt.OpenSSLSocketImpl.startHandshake (OpenSSLSocketImpl.java:351) ... еще 33
почему эта ошибка продолжает показывать, как ее устранить и как ее исправить?.