соединение node.js с приложением для Android с помощью RxAndroid и модернизация - PullRequest
0 голосов
/ 25 декабря 2018

Я работаю над проектом 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

почему эта ошибка продолжает показывать, как ее устранить и как ее исправить?.

...