javax.net.ssl.SSLHandshakeException 错误 SSL 但适用于 Postman

Fli*_*vid 5 ssl android web-services laravel retrofit

我有一个服务,我可以毫无问题地连接我的 android 应用程序,我在我的开发服务器上工作。但是当服务在生产服务器中时,会出现如下图所示的错误。

在此处输入图片说明 - 在两台服务器上,我都测试了邮递员并且可以正常工作。

在此处输入图片说明 在服务的部分我使用 Laravel

在安卓中使用

compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'



@GET("/api/account/{accountId}/balance")
public void getBalanceAccount(
        @Path("accountId") int accountId,
        CancelableCallback<Balance> balanceCancelableCallback
);



public Gson providesGson() {

    return new GsonBuilder()
            .registerTypeAdapter(Date.class, new DateTypeAdapter())
            .create();

}

private OkHttpClient myOkHttpClient(){

    OkHttpClient okHttpClient = new OkHttpClient();
    okHttpClient.setReadTimeout(70 * 1000, TimeUnit.MILLISECONDS);
    okHttpClient.setConnectTimeout(70 * 1000, TimeUnit.MILLISECONDS);

    return okHttpClient;
}

public RestAdapter providesRestAdapter(Gson gson) {

    return new RestAdapter.Builder()
            .setClient(new OkClient(myOkHttpClient()))
            .setLog(new AndroidLog("Retrofit"))
            .setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)
            .setEndpoint(BuildConfig.BASE_URL_STYLE)
            .setConverter(new GsonConverter(gson))
            .setRequestInterceptor(new SessionRequestInterceptorGetTokenAPI())
            .build();

}
Run Code Online (Sandbox Code Playgroud)

找了半天想解决。但没有成功,任何意见都可以提供帮助。

谢谢你

解决

乌鲁尔

private OkHttpClient myOkHttpClient(){

    try{
        OkHttpClient okHttpClient = new OkHttpClient();
        okHttpClient.setReadTimeout(70 * 1000, TimeUnit.MILLISECONDS);
        okHttpClient.setConnectTimeout(70 * 1000, TimeUnit.MILLISECONDS);

        final TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
            @Override
            public void checkClientTrusted(
                    java.security.cert.X509Certificate[] chain,
                    String authType) throws CertificateException {
            }

            @Override
            public void checkServerTrusted(
                    java.security.cert.X509Certificate[] chain,
                    String authType) throws CertificateException {
            }

            @Override
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
        } };


        final SSLContext sslContext = SSLContext.getInstance("SSL");
        sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
        // Create an ssl socket factory with our all-trusting manager
        final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

        okHttpClient.setSslSocketFactory(sslSocketFactory);

        return okHttpClient;

    }catch (Exception e){
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

tks