Loading... 自测可用 1.证书类class 2.okhttp类class ```java hljs 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() { TrustManager[] trustAllCerts = 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[]{}; //okhttp 3.0 以前版本 return new X509Certificate[0] ; //3.0后版本 } } }; return trustAllCerts; } //获取HostnameVerifier public static HostnameVerifier getHostnameVerifier() { HostnameVerifier hostnameVerifier = new HostnameVerifier() { @Override public boolean verify(String s, SSLSession sslSession) { return true; } }; return hostnameVerifier; }} ``` ```java hljs public class HttpUtil { private static final Logger logger = LoggerFactory.getLogger(HttpUtil.class); private static final OkHttpClient client = new OkHttpClient().newBuilder() .connectTimeout(200, TimeUnit.SECONDS) .readTimeout(200, TimeUnit.SECONDS) .retryOnConnectionFailure(false) .sslSocketFactory(SSLSocketClient.getSSLScocketFactory()) .hostnameVerifier(SSLSocketClient.getHostnameVerifier()) .build(); private static final MediaType MEDIA_TYPE_MARKDOWN = MediaType.parse("application/json; charset=utf-8"); private static final HttpUtil instance = new HttpUtil(); private HttpUtil() { } public static HttpUtil getInstance() { return instance; } /** * 执行http post请求 * @param postBody * @param url * @return */ public String httpExecute(String postBody, String url,String tokenCode) { Request request = null ; if(tokenCode !=null && !"".equals(tokenCode)) { Headers headers = new Headers.Builder() .add("Authorization",tokenCode) .add("Content-type", "application/json;charset=utf-8") .build(); request = new Request.Builder().url(url) .headers(headers) .post(RequestBody.create(MEDIA_TYPE_MARKDOWN, postBody)) .build(); }else { request = new Request.Builder() .url(url) .post(RequestBody.create(MEDIA_TYPE_MARKDOWN, postBody)) .build(); } try { System.out.println("request:"+ request); Response response = client.newCall(request).execute(); logger.info("response:{}",response); return response.body().string(); } catch (Exception e) { e.printStackTrace(); logger.debug(" 网络调用异常httpExecute : {}", e); } return null; } /** * 转换成指定对象 * * @param postBody * @param url * @param clazz * @return * @throws IOException */ public Object httpExecute(String postBody, String url, Class clazz,String tokenCode) { String rString = httpExecute(postBody, url,tokenCode); Object obj = null ; try { Object obj = JSONObject.parseObject(rString, clazz); } catch (IOException e) { e.printStackTrace(); } return obj ; }} ``` 最后修改:2022 年 03 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏