D/OkHttp: <-- HTTP FAILED: javax.net.ssl.SSLException: SSL handshake aborted: ssl=0x64e3c938: I/O error during system call, Connection reset by peer
I'm getting this error on an Android 4.2.2 device. While running the same application on other devices, it works fine. Please Help.
public static Retrofit getClient(final Context context, final Server newServer) {
if(retrofit == null || server == null || !getServer().equals(newServer) || tok != null) {
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder okHttpClient = new OkHttpClient()
.newBuilder().addInterceptor(loggingInterceptor);
okHttpClient.addInterceptor( new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
String hh=tok.replace("\"", ""); //For removing the " from the token
Request newRequest = chain
.request()
.newBuilder()
.addHeader(HTTP_AUTH_HEADER,"Bearer " + hh) //token use for the Authentication.
.build();
return chain.proceed(newRequest);
}
});
retrofit = new Retrofit.Builder()
.baseUrl(getBaseUrl(context, server))
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient.build())
.build();
}
return retrofit;
}
private static String getBaseUrl(Context context, Server newServer) {
StringBuilder builder = new StringBuilder();
server = newServer; // update server address
if(server != null && server.getAddress() != null) {
return builder.append(server.getAddress()).toString();
} else { // set default address
return builder.append(BuildConfig.SERVER_ADDRESS).toString();
}
}
}