public static String getHtml(String url) throws FileNotFoundException, IOException, CertificateException, KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException, KeyManagementException { //解决javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name的异常 System.setProperty("jsse.enableSNIExtension", "false"); String msg = null; // KeyStore trust = KeyStore.getInstance("PKCS12"); // trust.load(new FileInputStream("c:/https_key/src/server.p12"), kp); SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { // 信任所有 public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true; } }).build(); // SSLContext sslContext = SSLContexts.custom() // .loadKeyMaterial(ks, kp)//.loadTrustMaterial(trust) // .build(); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( sslContext, new String[] { "TLSv1" }, null, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); CloseableHttpClient httpclient = HttpClients.custom() .setSSLSocketFactory(sslsf).build(); try { HttpGet httpget = new HttpGet(url); CloseableHttpResponse response = httpclient.execute(httpget); try { HttpEntity entity = response.getEntity(); // System.out.println("----------------------------------------"); // System.out.println(response.getStatusLine()); // 获取响应返回状态码 // 获取应答输入流 // System.out.println("Response content length: " + // entity.getContentLength()); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(entity.getContent(), "utf-8")); String tmp; StringBuffer text = new StringBuffer(); while ((tmp = bufferedReader.readLine()) != null) { // System.out.println(tmp); text.append(tmp); } msg = text.toString(); EntityUtils.consume(entity); } finally { response.close(); } } catch (Exception e) { e.printStackTrace(); } finally { httpclient.close(); } return msg; }
相关推荐
Https请求工具类,Java实现http请求,https请求 本篇文章将详细介绍如何使用Java语言实现Http和Https请求的工具类,包括如何建立Https连接、如何实现Post请求、如何处理SSL验证等内容。 在Java中,使用...
这个“Java Https工具类,Java Https Post请求”可能是一个自定义的类,用于简化发送HTTPS POST请求的过程。以下是对这个主题的详细讲解: 1. **HTTPS基础**: - HTTPS是在HTTP上添加了SSL/TLS(Secure Sockets ...
### Java 发送 HTTPS 请求时遇到证书问题解析 在进行网络通信的过程中,HTTPS 协议由于其安全性被广泛应用。本文将围绕“Java 发送 HTTPS 请求证书问题”这一主题展开讨论,通过对给定文件中的代码示例及操作步骤...
在Java编程中,发送HTTP和HTTPS请求是常见的网络通信任务,尤其在开发Web服务客户端或者进行API测试时。本文将详细讲解如何使用Java发送GET和POST请求,以及涉及的HTTPS安全连接。 首先,理解HTTP和HTTPS的区别至关...
首先,`HttpsURLConnection`是Java提供的一个类,用于通过HTTPS协议进行安全的HTTP通信。HTTPS是一种基于SSL/TLS协议的安全传输层,可以确保数据在传输过程中的安全性。然而,当传输包含中文字符的数据时,由于字符...
在Java编程环境中,进行HTTPS POST请求是常见的网络通信任务,特别是在需要安全传输敏感数据时,如用户登录信息或支付详情。HTTPS(HTTP over SSL/TLS)提供了加密和身份验证机制,确保了数据的隐私和完整性。本文将...
在Java 3.x和4.x版本中,处理HTTPS请求的方法虽然与HTTP基本类似,但需要额外考虑安全性和证书管理。 一、Java HTTPS请求的基本步骤 1. 导入相关库:在进行HTTPS请求之前,需要导入`javax.net.ssl`和`java.net`这...
总结来说,`HttpsURLConnection`是Java进行HTTPS通信的重要工具,它的使用涉及网络连接的建立、SSL配置、请求和响应的处理。了解并熟练掌握这一部分知识对于开发涉及网络交互的Java应用程序至关重要。在源码分析和...
Java 开发 HTTPS 请求 SSL 不受信任问题解决方法 在 Java 开发中,使用 HTTPS 请求时可能会遇到 SSL 不受信任的问题,这是因为 Java 的证书验证机制会检查目标服务器的证书是否合法,如果证书不合法或没有证书就会...
首先,Java下载HTTPS文件涉及到网络请求和安全证书的处理。HTTPS(Hypertext Transfer Protocol Secure)是一种加密的通信协议,用于在互联网上安全地传输数据。由于HTTPS采用TLS/SSL协议,因此需要处理服务器的数字...
在Java中发送HTTPS请求需要使用`HttpsURLConnection`类,该类继承自`URLConnection`类,是专门用于HTTPS请求的类。`HttpsURLConnection`类提供了多种方法来发送HTTPS请求,例如设置请求方法、设置请求头、设置请求体...
Java作为广泛使用的编程语言,提供了丰富的API来实现HTTPS请求。本文将深入探讨如何使用Java进行HTTPS请求,以及涉及的相关知识点。 首先,理解HTTPS的基本原理至关重要。HTTPS在HTTP的基础上加入了SSL(Secure ...
6. **发起HTTPS请求**:现在HttpClient已经配置好,可以正常发送HTTPS请求了。例如,发送GET请求: ```java HttpGet request = new HttpGet(url); HttpResponse response = httpClient.execute(request); ``` 7...
然后,在`testUtils.java`中,可能包含了一些测试和辅助函数,比如创建`HttpsURLConnection`或`HttpClient`实例,设置SSL上下文,以及进行HTTP请求的逻辑: ```java public class TestUtils { public static ...
Java的`HttpURLConnection`类是处理HTTP和HTTPS请求的基础,而`HttpsURLConnection`则是它的HTTPS特定实现。 1. **配置SSL上下文**: 当访问HTTPS网址时,Java会检查服务器的SSL证书。如果证书不在受信任的证书...
总结起来,Android Studio中的`HttpsURLConnection`是实现POST请求的关键工具,通过配置连接、写入请求体和读取响应,可以安全地与HTTPS服务器进行交互。理解这些步骤并能灵活运用,对于任何Android开发者来说都是至...
这个简单的示例展示了如何使用Java的`HttpsURLConnection`发起一个HTTPS请求,获取并打印服务器的响应。在实际应用中,可能还需要处理证书验证、自定义SSLContext等更复杂的场景。 总的来说,理解Java中的SSL和...
### Java 发送 HTTP 和 HTTPS 请求详解 #### 一、引言 在现代软件开发中,客户端与服务端之间的通信通常是通过 HTTP 或 HTTPS 协议来完成的。Java 作为一种广泛使用的编程语言,提供了多种方式来实现 HTTP 和 HTTPS...
在Java开发中,调用HTTPS发布的Web Service接口是一项常见的任务,尤其在企业级应用中,HTTPS提供了安全的数据传输。本文将详细介绍如何使用Apache Axis库来实现这一功能,并提供相关步骤和注意事项。 首先,理解...