首页 > 网络运维 > HTTP&HTTPS > 正文

Java发送HTTPS请求代码实例

在现代互联网应用中,HTTPS已经成为了保证数据传输安全性的标准,因此在开发中需要使用Java发送HTTPS请求来保证数据的安全性。本文将介绍Java发送HTTPS请求的代码实例。

一、引入依赖

首先需要在项目中引入以下依赖:

```

org.apache.httpcomponents

httpclient

4.5.13

org.apache.httpcomponents

httpcore

4.4.14

```

二、发送HTTPS请求

下面是Java发送HTTPS请求的代码实例:

```

import org.apache.http.HttpEntity;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class HttpsDemo {

public static void main(String[] args) throws IOException {

CloseableHttpClient httpClient = HttpClients.createDefault();

HttpGet httpGet = new HttpGet("https://www.example.com");

CloseableHttpResponse response = httpClient.execute(httpGet);

HttpEntity entity = response.getEntity();

String result = EntityUtils.toString(entity, "UTF-8");

System.out.println(result);

response.close();

httpClient.close();

}

}

```

在上面的代码中,首先创建一个默认的HttpClient对象,然后创建一个HttpGet对象,设置请求的URL为"https://www.example.com",执行请求并获取响应结果。最后,关闭响应和HttpClient。

三、忽略SSL证书验证

在发送HTTPS请求时,需要验证SSL证书。但是,在某些情况下,我们需要忽略SSL证书验证。下面是Java忽略SSL证书验证的代码实例:

```

import org.apache.http.conn.ssl.NoopHostnameVerifier;

import org.apache.http.conn.ssl.SSLConnectionSocketFactory;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import javax.net.ssl.SSLContext;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

import java.security.cert.X509Certificate;

public class HttpsDemo {

public static void main(String[] args) throws Exception {

SSLContext sslContext = SSLContext.getInstance("SSL");

// 忽略证书验证

TrustManager[] trustAllCerts = new TrustManager[1];

TrustManager tm = new X509TrustManager() {

public void checkClientTrusted(X509Certificate[] chain, String authType) {}

public void checkServerTrusted(X509Certificate[] chain, String authType) {}

public X509Certificate[] getAcceptedIssuers() { return null; }

};

trustAllCerts[0] = tm;

sslContext.init(null, trustAllCerts, null);

// 创建HttpClient对象

SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);

CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslsf).build();

}

}

```

在上面的代码中,我们首先创建一个SSLContext实例,并忽略证书验证。然后,我们创建一个HttpClient对象,并将忽略证书验证后的SSLContext实例设置为SSLSocketFactory。这样,在发送请求时,SSL证书验证将被忽略。

总结

本文介绍了Java发送HTTPS请求的代码实例,并提供了忽略SSL证书验证的方法。在实际开发中,需要根据具体需求选择不同的方法来保证数据传输的安全性。

打赏
海报

本文转载自互联网,旨在分享有价值的内容,文章如有侵权请联系删除,部分文章如未署名作者来源请联系我们及时备注,感谢您的支持。

转载请注明本文地址:http://www.atpbike.com/article/HTTP/807.html

相关推荐

支付宝
微信
赞助本站