|  |  |  | 
|---|
|  |  |  | package com.fzzy.push.nx2023; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.fzzy.api.entity.ApiConfs; | 
|---|
|  |  |  | import com.fzzy.push.sh2023.dto.SH2023RespDto; | 
|---|
|  |  |  | import com.fzzy.push.nx2023.dto.Nx2023RespDto; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import javax.net.ssl.HostnameVerifier; | 
|---|
|  |  |  | import javax.net.ssl.HttpsURLConnection; | 
|---|
|  |  |  | import javax.net.ssl.SSLSession; | 
|---|
|  |  |  | import java.io.BufferedReader; | 
|---|
|  |  |  | import java.io.InputStreamReader; | 
|---|
|  |  |  | import java.io.OutputStream; | 
|---|
|  |  |  | 
|---|
|  |  |  | * @throws Exception | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @SuppressWarnings("resource") | 
|---|
|  |  |  | public static SH2023RespDto postPushData(String url, String reqData , ApiConfs apiConfs) throws Exception { | 
|---|
|  |  |  | public static Nx2023RespDto postPushData(String url, String reqData) throws Exception { | 
|---|
|  |  |  | log.info("---------接口请求地址:" +url+ "----------参数:" + reqData +"---------"); | 
|---|
|  |  |  | BufferedReader in = null; | 
|---|
|  |  |  | URL urls = new URL(url); | 
|---|
|  |  |  | HttpURLConnection connection = null; | 
|---|
|  |  |  | OutputStream outputStream = null; | 
|---|
|  |  |  | String rs = ""; | 
|---|
|  |  |  | SH2023RespDto responseDto; | 
|---|
|  |  |  | Nx2023RespDto responseDto; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | //https请求忽略ssl证书,该部分必须在获取connection前调用 | 
|---|
|  |  |  | trustAllHttpsCertificates(); | 
|---|
|  |  |  | HostnameVerifier hv = new HostnameVerifier() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public boolean verify(String urlHostName, SSLSession session) { | 
|---|
|  |  |  | log.info("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost()); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | HttpsURLConnection.setDefaultHostnameVerifier(hv); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | connection = (HttpURLConnection) urls.openConnection(); | 
|---|
|  |  |  | connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); | 
|---|
|  |  |  | 
|---|
|  |  |  | System.out.println("发生异常"); | 
|---|
|  |  |  | log.error(e.getMessage(),e); | 
|---|
|  |  |  | rs = null; | 
|---|
|  |  |  | return new SH2023RespDto(99,e.getMessage()); | 
|---|
|  |  |  | return new Nx2023RespDto(99,e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | log.info("---------接口返回:" + rs +"---------"); | 
|---|
|  |  |  | responseDto = JSON.parseObject(rs,SH2023RespDto.class); | 
|---|
|  |  |  | if(responseDto == null )   return new SH2023RespDto(99,"接口请求发生未知错误"); | 
|---|
|  |  |  | responseDto = JSON.parseObject(rs,Nx2023RespDto.class); | 
|---|
|  |  |  | if(responseDto == null )   return new Nx2023RespDto(99,"接口请求发生未知错误"); | 
|---|
|  |  |  | return responseDto; | 
|---|
|  |  |  | } finally { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | 
|---|
|  |  |  | connection = null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static void trustAllHttpsCertificates() throws Exception { | 
|---|
|  |  |  | javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1]; | 
|---|
|  |  |  | javax.net.ssl.TrustManager tm = new miTM(); | 
|---|
|  |  |  | trustAllCerts[0] = tm; | 
|---|
|  |  |  | javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL"); | 
|---|
|  |  |  | sc.init(null, trustAllCerts, null); | 
|---|
|  |  |  | javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public java.security.cert.X509Certificate[] getAcceptedIssuers() { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) { | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) { | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) | 
|---|
|  |  |  | throws java.security.cert.CertificateException { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) | 
|---|
|  |  |  | throws java.security.cert.CertificateException { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|