Android.SSLHandshakeException Сброс соединения по одноранговому узлу в AsyncHttpClient или Retrofit - PullRequest
0 голосов
/ 21 сентября 2018

Кто-нибудь знает, что может быть не так в конфигурации, что я получаю такое исключение:

javax.net.ssl.SSLHandshakeException: SSL handshake aborted: ssl=0x71c528b200:
 I/O error during system call, Connection reset by peer 

И как настроить это для AsyncHttpClient (com.loopj.android:android-async-http:1.4.9)?

Я использую следующую конфигурацию:

 import com.loopj.android.http.AsyncHttpClient;
 import com.loopj.android.http.AsyncHttpResponseHandler;
 import com.loopj.android.http.PersistentCookieStore;
 import com.loopj.android.http.MySSLSocketFactory;
 import cz.msebera.android.httpclient.Header;
 import cz.msebera.android.httpclient.message.BasicHeader;

    public class ProductsRestService {

        public AsyncHttpClient getHttpClient() {

            AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
            asyncHttpClient.setCookieStore(new PersistentCookieStore(getContext()));
            KeyStore trustStore;
            try {
                trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
                trustStore.load(null, null);
                MySSLSocketFactory socketFactory = new MySSLSocketFactory(trustStore);
                socketFactory.setHostnameVerifier(AppSSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

                asyncHttpClient.setSSLSocketFactory(socketFactory);
            } catch (Exception e) {
            }
            asyncHttpClient.setURLEncodingEnabled(true);
            return asyncHttpClient;
        }

    }

Я обнаружил, что это, вероятно, разные версии TLS, но потом не уверен, как настроить клиент Async.

То же самое, что я пытался модифицировать:

Retrofit.Builder builder = new Retrofit.Builder()
                .baseUrl(HOST)
                .addConverterFactory(GsonConverterFactory.create());

        Retrofit retrofit = builder.build();

        RetrofitCallService callTokenService = retrofit.create(RetrofitCallService.class);

        Call<String> tokens = callTokenService.getToken();

        Headers headers = null;
        try {
            headers = tokens.execute().headers();
        } catch (IOException e) {
            e.printStackTrace();
        }


        List<String> values = headers.values("Content-Type");

Результат того же исключения.Не совсем уверен, в каком направлении я должен искать.

Большое спасибо за любую помощь!

...