¿Cómo publicar una solicitud de HTTPS utilizando Retrofit?

Construyo un restAdapter por esto:

return new RestAdapter.Builder() .setEndpoint("https://www.xyz.com/") .build() .create(SafeUserApi.class); 

Entonces en el SafeUserApi.class (que es una interfaz) tengo:

 public interface SafeUserApi { @POST("/api/userlogin") void getUserLogin(@Body UserserLogin userLogin, Callback<LoginResult> cb); } 

Pero no funciona. ¿Me he perdido algo?

Lo intenté con Postman y funciona. Pero en mi dispositivo no lo hace.

Tengo estas cuatro librerías importadas:

 compile files('libs/okhttp-2.1.0.jar') compile files('libs/okhttp-urlconnection-2.1.0.jar') compile files('libs/okio-1.0.1.jar') compile files('libs/retrofit-1.8.0.jar') 

 public static OkHttpClient getUnsafeOkHttpClient() { try { // Create a trust manager that does not validate certificate chains 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 new java.security.cert.X509Certificate[0]; } } }; // Install the all-trusting trust manager final SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); // Create an ssl socket factory with our all-trusting manager final SSLSocketFactory sslSocketFactory = sslContext .getSocketFactory(); OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient = okHttpClient.newBuilder() .sslSocketFactory(sslSocketFactory) .hostnameVerifier(org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER).build(); return okHttpClient; } catch (Exception e) { throw new RuntimeException(e); } } 

Esto debería funcionar:

 Retrofit retrofit = new Retrofit.Builder() .baseUrl(YOUR_HTTPS_URL) .setClient(getUnsafeOkHttpClient()) .build(); 
 public interface SafeUserApi { @FormUrlEncoded @POST("/api/userlogin") void getUserLogin(@Field("parm1")UserserLogin userLogin, Callback<LoginResult> cb); } 

Aquí parm1 es el parámetro POST que va a pasarlo al servidor. Esto resolverá su problema

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.