Retrofit 제품군의 HTTPS는 모든 인증서를 신뢰합니다.
// OkHttpClient.build
OkHttpClient.Builder okhttpClient = new OkHttpClient().newBuilder();
//
okhttpClient.hostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
// true
return true;
}
});
//
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
@Override
public void checkClientTrusted(
java.security.cert.X509Certificate[] x509Certificates,
String s) throws java.security.cert.CertificateException {
}
@Override
public void checkServerTrusted(
java.security.cert.X509Certificate[] x509Certificates,
String s) throws java.security.cert.CertificateException {
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return new java.security.cert.X509Certificate[] {};
}
} };
try {
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
// OkHttpClient sslSocketFactory
okhttpClient.sslSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
e.printStackTrace();
}
// Retrofit
Retrofit httpsRetrofit = new Retrofit.Builder().baseUrl( baseLogin )
.addConverterFactory( GsonConverterFactory.create() )
// okHttpClient
.client( okhttpClient.build() )
.build();
//
GetAndPostService httpsService = httpsRetrofit.create( GetAndPostService.class );
// post
Map httpsMap = new HashMap<>( );
httpsMap.put( "username", "username" );
httpsMap.put( "password", "password" );
Call httpsCall = httpsService.httpsData(httpsMap);
httpsCall.enqueue( new Callback< CrmLoginBean >() {
@Override
public void onResponse( Call< CrmLoginBean > call, Response< CrmLoginBean > response ) {
Toast.makeText(LoginActivity.this, "message="+response.message()+",code="+response.code()+",response="+response.body().toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure( Call< CrmLoginBean > call, Throwable t ) {
Toast.makeText(LoginActivity.this, t.getMessage()+","+t.toString()+","+t.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
}
} );
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.