How to post HTTPS request using Retrofit?

后端 未结 2 1758
温柔的废话
温柔的废话 2020-12-28 21:24

I build a restAdapter by this:

    return new RestAdapter.Builder()
            .setEndpoint(\"https://www.xyz.com/\")
            .build()
            .crea         


        
相关标签:
2条回答
  • 2020-12-28 21:28
    public interface SafeUserApi {
        @FormUrlEncoded
        @POST("/api/userlogin")
        void getUserLogin(@Field("parm1")UserserLogin userLogin, Callback<LoginResult> cb);
    }
    

    Here parm1 is the POST parameter that you will be passing it to the server. This will solve your problem

    0 讨论(0)
  • 2020-12-28 21:46
    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);
        }
    
    }
    

    This should work:

    Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(YOUR_HTTPS_URL)
        .setClient(getUnsafeOkHttpClient())
        .build();
    
    0 讨论(0)
提交回复
热议问题