Java接口跳过SSL认证
/*** 绕过验证** @return* @throws NoSuchAlgorithmException* @throws KeyManagementException*/public static SSLContext createIgnoreVerifySSL() throws NoSuchAlgorithmException, KeyManagementException {SSLContext sc = SSLContext.getInstance("SSLv3");// 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法X509TrustManager trustManager = new X509TrustManager() {@Overridepublic void checkClientTrusted(java.security.cert.X509Certificate[] paramArrayOfX509Certificate,String paramString) {}@Overridepublic void checkServerTrusted(java.security.cert.X509Certificate[] paramArrayOfX509Certificate,String paramString) {}@Overridepublic java.security.cert.X509Certificate[] getAcceptedIssuers() {return null;}};sc.init(null, new TrustManager[] { trustManager }, null);return sc;}
//发送请求
public static String post(String url, String json) {String result = "";// 创建httpclient对象CloseableHttpClient httpClient = null;try {//采用绕过验证的方式处理https请求SSLContext sslcontext = createIgnoreVerifySSL();//创建自定义的httpclient对象SSLConnectionSocketFactory scsf = new SSLConnectionSocketFactory(sslcontext, NoopHostnameVerifier.INSTANCE);httpClient = HttpClients.custom().setSSLSocketFactory(scsf).build();// CloseableHttpClient client = HttpClients.createDefault();// 创建post方式请求对象HttpPost httpPost = new HttpPost(url);// 设置参数到请求对象中StringEntity stringEntity = new StringEntity(json, ContentType.APPLICATION_JSON);stringEntity.setContentEncoding("utf-8");httpPost.setEntity(stringEntity);// 设置header信息// 指定报文头【Content-type】、【User-Agent】httpPost.setHeader("Accept", "*/*");httpPost.setHeader("Content-type", "application/json;charset=UTF-8");// 执行请求操作,并拿到结果(同步阻塞)CloseableHttpResponse response = httpClient.execute(httpPost);// 获取结果实体// 判断网络连接状态码是否正常(0--200都数正常)if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {result = EntityUtils.toString(response.getEntity(), "utf-8");} else {System.out.println("响应失败:" + response.getStatusLine().getStatusCode());System.out.println("响应失败:" + response.getStatusLine());System.out.println("响应失败:" + response.toString());}// 释放链接if (response != null) {response.close();}} catch (Exception e) {e.printStackTrace();} finally {try {httpClient.close();} catch (IOException e) {e.printStackTrace();}}return result;}
Java接口跳过SSL认证实现完成
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
