2016-03-31 10 views
0

Ich benutze Retrofit 2.0.0-Beta3 mit OkHttp 3.0.0-RC1 und nach unten trivial Problem. Der HTTPS-Server ich anschließe funktioniert gut mit Ich benutze CertificatePinner und OkHttp zu nennen, aber mit Retrofit Anruf nicht einmal arbeiten, obwohl ich den gleichen Client in Retrofit-Instanz setzenachrüsten okhttpclient mit CertificatePinner

String hostname = "hostname"; 
CertificatePinner certificatePinner = new CertificatePinner.Builder() 
     .add(hostname, "sha1/rNKiM/IsTzTMJ09jpMtPq4qP+Q8=") 
     .add(hostname, "sha1/hL8+j9RH89wlAW7eNDSS1ZlZ8Z8=") 
     .build(); 
OkHttpClient client = new OkHttpClient.Builder().certificatePinner(certificatePinner).build(); 

// This call works 
OkHttpClient client = new OkHttpClient.Builder().certificatePinner(certificatePinner).build(); 
Request request = new Request.Builder() 
    .url("https://" + hostname + "/api/me") 
    .addHeader("Authorization", "Bearer token") 
    .build(); 
okhttp3.Call call = client.newCall(request); 
//execute call returns 200 with response 

// This is not working and throwing SSL Connection Error 
retrofit = new Retrofit.Builder() 
     .baseUrl("https://" + hostname) 
     .addConverterFactory(GsonConverterFactory.create(gson)) 
     .client(client) 
     .build(); 
+0

Was meinst du mit "funktioniert nicht"? – Robert

+0

@Robert es ist jetzt behoben, ich habe einen Fehler in der Reihenfolge der Ausführung gefunden. Ich habe meine Antwort unten gestellt – dhaval

Antwort

0

Es war zu dem ein Fehler in app aufgrund Der Client wurde zuvor unter dem folgenden Code erstellt:

Die Bestellung ist jetzt behoben und der Code funktioniert einwandfrei.