forked from rongchao/epmet-cloud-rizhao
9 changed files with 605 additions and 16 deletions
@ -0,0 +1,46 @@ |
|||||
|
package com.epmet; |
||||
|
|
||||
|
import com.alibaba.fastjson.JSON; |
||||
|
import com.epmet.commons.thirdplat.apiservice.jcet.JcetApiService; |
||||
|
import com.epmet.commons.thirdplat.bean.ThirdPlatUserInfo; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.junit.Test; |
||||
|
import org.junit.runner.RunWith; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.boot.test.context.SpringBootTest; |
||||
|
import org.springframework.test.context.junit4.SpringRunner; |
||||
|
|
||||
|
/** |
||||
|
* desc:redisson测试类 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@RunWith(value = SpringRunner.class) |
||||
|
@SpringBootTest(classes = {AuthApplication.class}) |
||||
|
public class ThirdPlatformTest { |
||||
|
|
||||
|
@Autowired |
||||
|
private JcetApiService jcetApiService; |
||||
|
|
||||
|
@Test |
||||
|
public void t() { |
||||
|
String ssoTicket = "ssoTicket-5kc8FY7Re2iv7Kfq74G9EWCN7QybBjxB"; |
||||
|
for (int i = 0; i < 50; i++) { |
||||
|
getUserINfoByTicket(ssoTicket); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private void getUserINfoByTicket(String ssoTicket) { |
||||
|
try { |
||||
|
ThirdPlatUserInfo cUserInfoByTicket = jcetApiService.getCUserInfoByTicket(ssoTicket); |
||||
|
log.info("result:{}", JSON.toJSONString(cUserInfoByTicket)); |
||||
|
} catch (Exception e) { |
||||
|
log.info("失败:{}", e.getMessage()); |
||||
|
if (e.getMessage().contains("Read timed out")) |
||||
|
log.info("失败了"); |
||||
|
//break;
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,33 @@ |
|||||
|
package com.epmet.commons.tools.utils.net; |
||||
|
|
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import okhttp3.Interceptor; |
||||
|
import okhttp3.Request; |
||||
|
import okhttp3.Response; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
|
||||
|
/** |
||||
|
* desc: |
||||
|
* |
||||
|
* @author: LiuJanJun |
||||
|
* @date: 2021/4/16 5:02 下午 |
||||
|
* @version: 1.0 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
class HttpLogInterceptor implements Interceptor { |
||||
|
@Override public Response intercept(Interceptor.Chain chain) throws IOException { |
||||
|
Request request = chain.request(); |
||||
|
long t1 = System.nanoTime(); |
||||
|
log.info(String.format("Sending request %s on %s%n%s", |
||||
|
request.url(), chain.connection(), request.headers())); |
||||
|
|
||||
|
Response response = chain.proceed(request); |
||||
|
|
||||
|
long t2 = System.nanoTime(); |
||||
|
log.info(String.format("Received response for %s in %.1fms%n%s", |
||||
|
response.request().url(), (t2 - t1) / 1e6d, response.headers())); |
||||
|
|
||||
|
return response; |
||||
|
} |
||||
|
} |
@ -0,0 +1,432 @@ |
|||||
|
package com.epmet.commons.tools.utils.net; |
||||
|
|
||||
|
|
||||
|
import okhttp3.*; |
||||
|
import org.apache.http.client.utils.URIBuilder; |
||||
|
import org.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
|
||||
|
import javax.net.ssl.SSLContext; |
||||
|
import javax.net.ssl.SSLSocketFactory; |
||||
|
import javax.net.ssl.TrustManager; |
||||
|
import javax.net.ssl.X509TrustManager; |
||||
|
import java.io.IOException; |
||||
|
import java.net.MalformedURLException; |
||||
|
import java.net.URISyntaxException; |
||||
|
import java.security.SecureRandom; |
||||
|
import java.security.cert.CertificateException; |
||||
|
import java.security.cert.X509Certificate; |
||||
|
import java.util.*; |
||||
|
import java.util.concurrent.TimeUnit; |
||||
|
|
||||
|
|
||||
|
public class OkHttpUtil { |
||||
|
|
||||
|
private static final Logger logger = LoggerFactory.getLogger(OkHttpUtil.class); |
||||
|
|
||||
|
public final static int READ_TIMEOUT = 100; |
||||
|
public final static int CONNECT_TIMEOUT = 60; |
||||
|
public final static int WRITE_TIMEOUT = 60; |
||||
|
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); |
||||
|
|
||||
|
public static final String CONTENT_TYPE = "Content-Type"; |
||||
|
|
||||
|
private static final byte[] LOCKER = new byte[0]; |
||||
|
private static OkHttpUtil mInstance; |
||||
|
private OkHttpClient mOkHttpClient; |
||||
|
|
||||
|
|
||||
|
private OkHttpUtil() { |
||||
|
//todo 由于是静态工具类,只会创建client一次,如果以后需要不同请求不同超时时间,不能这样使用
|
||||
|
okhttp3.OkHttpClient.Builder clientBuilder = new okhttp3.OkHttpClient.Builder(); |
||||
|
//设置读取超市时间
|
||||
|
clientBuilder.readTimeout(READ_TIMEOUT, TimeUnit.SECONDS); |
||||
|
//设置超时连接时间
|
||||
|
clientBuilder.connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS); |
||||
|
//设置写入超时时间
|
||||
|
clientBuilder.writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS); |
||||
|
//支持HTTPS请求,跳过证书验证
|
||||
|
clientBuilder.sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), SSLSocketClient.getX509TrustManager()) |
||||
|
.hostnameVerifier(SSLSocketClient.getHostnameVerifier()); |
||||
|
//clientBuilder.sslSocketFactory(createSSLSocketFactory());
|
||||
|
/*clientBuilder.hostnameVerifier(new HostnameVerifier() { |
||||
|
@Override |
||||
|
public boolean verify(String hostname, SSLSession session) { |
||||
|
return true; |
||||
|
} |
||||
|
});*/ |
||||
|
|
||||
|
//添加拦截器
|
||||
|
clientBuilder.addInterceptor(new HttpLogInterceptor()); |
||||
|
mOkHttpClient = clientBuilder.build(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 单例模式获取NetUtils |
||||
|
* |
||||
|
* @return |
||||
|
*/ |
||||
|
public static OkHttpUtil getInstance() { |
||||
|
if (mInstance == null) { |
||||
|
synchronized (LOCKER) { |
||||
|
if (mInstance == null) { |
||||
|
mInstance = new OkHttpUtil(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return mInstance; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* get请求,同步方式,获取网络数据,是在主线程中执行的,需要新起线程,将其放到子线程中执行 |
||||
|
* |
||||
|
* @param url |
||||
|
* @return |
||||
|
*/ |
||||
|
public Response getData(String url) { |
||||
|
return getData(url, null); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* get请求,同步方式,获取网络数据,是在主线程中执行的,需要新起线程,将其放到子线程中执行 |
||||
|
* |
||||
|
* @param url |
||||
|
* @return |
||||
|
*/ |
||||
|
public Response getData(String url, Map<String, Object> headerMap) { |
||||
|
//1 构造Request
|
||||
|
Request.Builder builder = new Request.Builder().get().url(url); |
||||
|
//Request request = builder.get().url(url).build();
|
||||
|
//builder = builder.get().url(url);
|
||||
|
/*if (headerMap != null && headerMap.isEmpty()) { |
||||
|
for (Map.Entry<String, String> headerEntry : headerMap.entrySet()) { |
||||
|
builder.addHeader(headerEntry.getKey(), headerEntry.getValue()); |
||||
|
} |
||||
|
}*/ |
||||
|
addHeaders(headerMap,builder); |
||||
|
Request request = builder.build(); |
||||
|
|
||||
|
|
||||
|
//2 将Request封装为Call
|
||||
|
Call call = mOkHttpClient.newCall(request); |
||||
|
//3 执行Call,得到response
|
||||
|
Response response = null; |
||||
|
try { |
||||
|
response = call.execute(); |
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return response; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* post form表单 请求,同步方式,提交数据,是在主线程中执行的,需要新起线程,将其放到子线程中执行 |
||||
|
* |
||||
|
* @param url |
||||
|
* @param bodyParams |
||||
|
* @return |
||||
|
*/ |
||||
|
/*public Response postFormData(String url, Map<String, String> bodyParams) { |
||||
|
//1构造RequestBody
|
||||
|
RequestBody body = setRequestBody(bodyParams); |
||||
|
//2 构造Request
|
||||
|
Request.Builder requestBuilder = new Request.Builder(); |
||||
|
Request request = requestBuilder.post(body).addHeader(CONTENT_TYPE, HttpContentTypeEnum.FORM.contentTypeValue).url(url).build(); |
||||
|
//3 将Request封装为Call
|
||||
|
Call call = mOkHttpClient.newCall(request); |
||||
|
//4 执行Call,得到response
|
||||
|
Response response = null; |
||||
|
try { |
||||
|
response = call.execute(); |
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return response; |
||||
|
}*/ |
||||
|
|
||||
|
/** |
||||
|
* post方式 |
||||
|
* |
||||
|
* @param url 请求url |
||||
|
* @param bodyParams requestbody |
||||
|
* @param headerMap 请求头信息 |
||||
|
* @return |
||||
|
* @throws IOException |
||||
|
*/ |
||||
|
public Response postData(String url, Map<String, Object> bodyParams, Map<String, Object> headerMap) throws Exception { |
||||
|
//1构造RequestBody
|
||||
|
RequestBody body = setRequestBody(bodyParams, headerMap); |
||||
|
//2 构造Request
|
||||
|
Request.Builder requestBuilder = new Request.Builder().post(body).url(url); |
||||
|
//requestBuilder = requestBuilder.post(body).url(url);
|
||||
|
addHeaders(headerMap, requestBuilder); |
||||
|
Request request = requestBuilder.build(); |
||||
|
//Request request = requestBuilder.post(body).addHeader(CONTENT_TYPE, HttpContentTypeEnum.JSON.contentTypeValue).url(url).build();
|
||||
|
//3 将Request封装为Call
|
||||
|
Call call = mOkHttpClient.newCall(request); |
||||
|
//4 执行Call,得到response
|
||||
|
Response response = null; |
||||
|
try { |
||||
|
response = call.execute(); |
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return response; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* put请求方式 |
||||
|
* |
||||
|
* @param url |
||||
|
* @param bodyParams |
||||
|
* @return |
||||
|
*/ |
||||
|
public Response putData(String url, Map<String, Object> bodyParams, Map<String, Object> headerMap) throws Exception { |
||||
|
//1构造RequestBody
|
||||
|
RequestBody body = setRequestBody(bodyParams, headerMap); |
||||
|
//2 构造Request
|
||||
|
Request.Builder requestBuilder = new Request.Builder().put(body).url(url); |
||||
|
addHeaders(headerMap, requestBuilder); |
||||
|
Request request = requestBuilder.build(); |
||||
|
//3 将Request封装为Call
|
||||
|
Call call = mOkHttpClient.newCall(request); |
||||
|
//4 执行Call,得到response
|
||||
|
Response response = null; |
||||
|
try { |
||||
|
response = call.execute(); |
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return response; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* @param url |
||||
|
* @param bodyParams |
||||
|
* @return |
||||
|
*/ |
||||
|
public Response delData(String url, Map<String, Object> bodyParams, Map<String, Object> headerMap) throws Exception { |
||||
|
//1构造RequestBody
|
||||
|
RequestBody body = setRequestBody(bodyParams, headerMap); |
||||
|
//2 构造Request
|
||||
|
Request.Builder requestBuilder = new Request.Builder().delete(body).url(url); |
||||
|
addHeaders(headerMap, requestBuilder); |
||||
|
Request request = requestBuilder.build(); |
||||
|
//3 将Request封装为Call
|
||||
|
Call call = mOkHttpClient.newCall(request); |
||||
|
//4 执行Call,得到response
|
||||
|
Response response = null; |
||||
|
try { |
||||
|
response = call.execute(); |
||||
|
} catch (IOException e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
return response; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* post的请求参数,构造RequestBody |
||||
|
* |
||||
|
* @param bodyParams |
||||
|
* @return |
||||
|
*/ |
||||
|
private RequestBody setRequestBody(Map<String, Object> bodyParams, Map<String, Object> headerMap) throws Exception { |
||||
|
//判断请求头中是否存在 content-type字段
|
||||
|
if (headerMap == null || !headerMap.containsKey(CONTENT_TYPE)) { |
||||
|
throw new Exception("请求头信息配置中无 Content-Type配置,请先配置"); |
||||
|
} |
||||
|
|
||||
|
Object contentType = headerMap.get(CONTENT_TYPE); |
||||
|
String contentTypeStr = contentType != null?contentType.toString():null; |
||||
|
if ("application/x-www-form-urlencoded".equals(contentTypeStr)) { |
||||
|
//表单提交 就是key-value 都是字符串型
|
||||
|
//转换
|
||||
|
Map<String, String> strBodyParamMap = new HashMap<>(); |
||||
|
if (bodyParams != null && !bodyParams.isEmpty()) { |
||||
|
bodyParams.forEach((key, value) -> { |
||||
|
if (value != null) { |
||||
|
strBodyParamMap.put(key, (String) value); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
return buildRequestBodyByMap(strBodyParamMap); |
||||
|
} else { |
||||
|
//json
|
||||
|
return buildRequestBodyByJson(com.alibaba.fastjson.JSON.toJSONString(bodyParams)); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 表单方式提交构建 |
||||
|
* |
||||
|
* @param bodyParams |
||||
|
* @return |
||||
|
*/ |
||||
|
private RequestBody buildRequestBodyByMap(Map<String, String> bodyParams) { |
||||
|
RequestBody body = null; |
||||
|
okhttp3.FormBody.Builder formEncodingBuilder = new okhttp3.FormBody.Builder(); |
||||
|
if (bodyParams != null) { |
||||
|
Iterator<String> iterator = bodyParams.keySet().iterator(); |
||||
|
String key = ""; |
||||
|
while (iterator.hasNext()) { |
||||
|
key = iterator.next().toString(); |
||||
|
formEncodingBuilder.add(key, bodyParams.get(key)); |
||||
|
logger.info(" 请求参数:{},请求值:{} ", key, bodyParams.get(key)); |
||||
|
} |
||||
|
} |
||||
|
body = formEncodingBuilder.build(); |
||||
|
return body; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* json方式提交构建 |
||||
|
* |
||||
|
* @param jsonStr |
||||
|
* @return |
||||
|
*/ |
||||
|
private RequestBody buildRequestBodyByJson(String jsonStr) { |
||||
|
return RequestBody.create(JSON, jsonStr); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 生成安全套接字工厂,用于https请求的证书跳过 |
||||
|
* |
||||
|
* @return |
||||
|
*/ |
||||
|
public SSLSocketFactory createSSLSocketFactory() { |
||||
|
SSLSocketFactory ssfFactory = null; |
||||
|
try { |
||||
|
SSLContext sc = SSLContext.getInstance("TLS"); |
||||
|
sc.init(null, new TrustManager[]{new TrustAllCerts()}, new SecureRandom()); |
||||
|
ssfFactory = sc.getSocketFactory(); |
||||
|
} catch (Exception e) { |
||||
|
} |
||||
|
return ssfFactory; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 针对json post处理 |
||||
|
* |
||||
|
* @param url |
||||
|
* @param json |
||||
|
* @return |
||||
|
* @throws IOException |
||||
|
*/ |
||||
|
public String postJson(String url, String json) throws IOException { |
||||
|
RequestBody body = RequestBody.create(JSON, json); |
||||
|
Request request = new Request.Builder() |
||||
|
.url(url) |
||||
|
.post(body) |
||||
|
.build(); |
||||
|
Response response = mOkHttpClient.newCall(request).execute(); |
||||
|
if (response.isSuccessful()) { |
||||
|
return response.body().string(); |
||||
|
} else { |
||||
|
throw new IOException("Unexpected code " + response); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public void postJsonAsyn(String url, String json, final MyNetCall myNetCall) throws IOException { |
||||
|
RequestBody body = RequestBody.create(JSON, json); |
||||
|
//2 构造Request
|
||||
|
Request.Builder requestBuilder = new Request.Builder(); |
||||
|
Request request = requestBuilder.post(body).url(url).build(); |
||||
|
//3 将Request封装为Call
|
||||
|
Call call = mOkHttpClient.newCall(request); |
||||
|
//4 执行Call
|
||||
|
call.enqueue(new Callback() { |
||||
|
@Override |
||||
|
public void onFailure(Call call, IOException e) { |
||||
|
myNetCall.failed(call, e); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onResponse(Call call, Response response) throws IOException { |
||||
|
myNetCall.success(call, response); |
||||
|
|
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 自定义网络回调接口 |
||||
|
*/ |
||||
|
public interface MyNetCall { |
||||
|
void success(Call call, Response response) throws IOException; |
||||
|
|
||||
|
void failed(Call call, IOException e); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 构建http get请求,将参数拼接到url后面 |
||||
|
* |
||||
|
* @param url |
||||
|
* @param para |
||||
|
* @return |
||||
|
* @throws URISyntaxException |
||||
|
* @throws MalformedURLException |
||||
|
*/ |
||||
|
public static String buildHttpGet(String url, Map<String, Object> para) |
||||
|
throws URISyntaxException, MalformedURLException { |
||||
|
URIBuilder builder = new URIBuilder(url); |
||||
|
Set<String> set = para.keySet(); |
||||
|
for (String key : set) { |
||||
|
builder.setParameter(key, String.valueOf(para.get(key))); |
||||
|
} |
||||
|
return builder.build().toURL().toString(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 添加header信息 |
||||
|
* |
||||
|
* @param headerMap |
||||
|
* @param builder |
||||
|
* @return |
||||
|
*/ |
||||
|
private static Request.Builder addHeaders(Map<String, Object> headerMap, Request.Builder builder) { |
||||
|
if (headerMap != null && !headerMap.isEmpty()) { |
||||
|
headerMap.forEach((key, value) -> builder.addHeader(key, value == null? null:value.toString())); |
||||
|
} |
||||
|
return builder; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 用于信任所有证书 |
||||
|
*/ |
||||
|
class TrustAllCerts implements X509TrustManager { |
||||
|
@Override |
||||
|
public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public X509Certificate[] getAcceptedIssuers() { |
||||
|
return new X509Certificate[0]; |
||||
|
} |
||||
|
} |
||||
|
public static void main(String[] args) { |
||||
|
try { |
||||
|
Response data = OkHttpUtil.getInstance().getData("http://218.88.215.93:10011/open-api/app/token?appKey=Y6FKNwWxaeSapJT8&appSecret=e87695b9010dec760f6787a90e32921c"); |
||||
|
System.out.println(Objects.requireNonNull(data.body()).string()); |
||||
|
System.out.println(Optional.ofNullable(null).get()); |
||||
|
} catch (Exception e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,64 @@ |
|||||
|
package com.epmet.commons.tools.utils.net; |
||||
|
|
||||
|
|
||||
|
import javax.net.ssl.*; |
||||
|
import java.security.KeyStore; |
||||
|
import java.security.SecureRandom; |
||||
|
import java.security.cert.X509Certificate; |
||||
|
import java.util.Arrays; |
||||
|
|
||||
|
public class SSLSocketClient { |
||||
|
|
||||
|
//获取这个SSLSocketFactory
|
||||
|
public static SSLSocketFactory getSSLSocketFactory() { |
||||
|
try { |
||||
|
SSLContext sslContext = SSLContext.getInstance("SSL"); |
||||
|
sslContext.init(null, getTrustManager(), new SecureRandom()); |
||||
|
return sslContext.getSocketFactory(); |
||||
|
} catch (Exception e) { |
||||
|
throw new RuntimeException(e); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
//获取TrustManager
|
||||
|
private static TrustManager[] getTrustManager() { |
||||
|
return new TrustManager[]{ |
||||
|
new X509TrustManager() { |
||||
|
@Override |
||||
|
public void checkClientTrusted(X509Certificate[] chain, String authType) { |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void checkServerTrusted(X509Certificate[] chain, String authType) { |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public X509Certificate[] getAcceptedIssuers() { |
||||
|
return new X509Certificate[]{}; |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
//获取HostnameVerifier
|
||||
|
public static HostnameVerifier getHostnameVerifier() { |
||||
|
return (s, sslSession) -> true; |
||||
|
} |
||||
|
|
||||
|
public static X509TrustManager getX509TrustManager() { |
||||
|
X509TrustManager trustManager = null; |
||||
|
try { |
||||
|
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); |
||||
|
trustManagerFactory.init((KeyStore) null); |
||||
|
TrustManager[] trustManagers = trustManagerFactory.getTrustManagers(); |
||||
|
if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) { |
||||
|
throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers)); |
||||
|
} |
||||
|
trustManager = (X509TrustManager) trustManagers[0]; |
||||
|
} catch (Exception e) { |
||||
|
e.printStackTrace(); |
||||
|
} |
||||
|
|
||||
|
return trustManager; |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue