java https 工具类_java https 请求工具类-通用
时间: 2023-08-04 16:32:51 浏览: 187
以下是一个通用的Java HTTP请求工具类,可以用于发送HTTPS请求:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
public class HttpUtils {
/**
* 发送HTTP GET请求
* @param url 请求的URL地址
* @return 响应结果
*/
public static String sendHttpGet(String url) throws Exception {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) { // 成功
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
return response.toString();
} else {
throw new Exception("HTTP请求失败,返回码:" + responseCode);
}
}
/**
* 发送HTTPS GET请求
* @param url 请求的URL地址
* @return 响应结果
*/
public static String sendHttpsGet(String url) throws Exception {
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[] {new X509TrustManager() {
public void checkClientTrusted(java.security.cert.X509Certificate[] arg0, String arg1) {}
public void checkServerTrusted(java.security.cert.X509Certificate[] arg0, String arg1) {}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {return new java.security.cert.X509Certificate[0];}
}}, new java.security.SecureRandom());
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
con.setSSLSocketFactory(sslcontext.getSocketFactory());
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) { // 成功
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
return response.toString();
} else {
throw new Exception("HTTPS请求失败,返回码:" + responseCode);
}
}
}
```
这个工具类使用了Java标准库中的`HttpURLConnection`和`HttpsURLConnection`来发送HTTP/HTTPS请求,并且支持GET请求方式。在发送HTTPS请求时,需要先自定义一个`TrustManager`,并且将其设为SSLContext的默认信任管理器,这样才能避免SSL证书验证失败的问题。
阅读全文