java怎样发送https请求
答案:1 悬赏:10 手机版
解决时间 2021-01-04 11:45
- 提问者网友:寂寞梧桐
- 2021-01-03 19:52
java怎样发送https请求
最佳答案
- 五星知识达人网友:等灯
- 2021-01-10 05:43
package com.yichangmao;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Iterator;
import javax.net.ssl.*;
public class TrustSSL {
private static class TrustAnyTrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}
private static class TrustAnyHostnameVerifier implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
public static String requestUrl(String url, HashMap<String, String> data)
throws IOException {
HttpURLConnection conn;
try {
//if GET....
//URL requestUrl = new URL(url + "?" + httpBuildQuery(data));
URL requestUrl = new URL(url);
conn = (HttpURLConnection) requestUrl.openConnection();
} catch (MalformedURLException e) {
return e.getMessage();
}
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setDoInput(true);
conn.setDoOutput(true);
PrintWriter writer = new PrintWriter(conn.getOutputStream());
writer.print(httpBuildQuery(data));
writer.flush();
writer.close();
String line;
BufferedReader bufferedReader;
StringBuilder sb = new StringBuilder();
InputStreamReader streamReader = null;
try {
streamReader = new InputStreamReader(conn.getInputStream(), "UTF-8");
} catch (IOException e) {
streamReader = new InputStreamReader(conn.getErrorStream(), "UTF-8");
} finally {
if (streamReader != null) {
bufferedReader = new BufferedReader(streamReader);
sb = new StringBuilder();
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
}
}
return sb.toString();
}
public static String httpBuildQuery(HashMap<String, String> data) {
String ret = "";
String k, v;
Iterator<String> iterator = data.keySet().iterator();
while (iterator.hasNext()) {
k = iterator.next();
v = data.get(k);
try {
ret += URLEncoder.encode(k, "utf8") + "=" + URLEncoder.encode(v, "utf8");
} catch (UnsupportedEncodingException e) {
}
ret += "&";
}
return ret.substring(0, ret.length() - 1);
}
public static String sengHTTPSGet(String url,HashMap<String, String> data) throws Exception {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL console = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
// conn.connect();
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setDoInput(true);
conn.setDoOutput(true);
PrintWriter writer = new PrintWriter(conn.getOutputStream());
writer.print(httpBuildQuery(data));
writer.flush();
writer.close();
String line;
BufferedReader bufferedReader;
StringBuilder sb = new StringBuilder();
InputStreamReader streamReader = null;
try {
streamReader = new InputStreamReader(conn.getInputStream(), "UTF-8");
} catch (IOException e) {
streamReader = new InputStreamReader(conn.getErrorStream(), "UTF-8");
} finally {
if (streamReader != null) {
bufferedReader = new BufferedReader(streamReader);
sb = new StringBuilder();
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
}
}
return sb.toString();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Iterator;
import javax.net.ssl.*;
public class TrustSSL {
private static class TrustAnyTrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}
private static class TrustAnyHostnameVerifier implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
public static String requestUrl(String url, HashMap<String, String> data)
throws IOException {
HttpURLConnection conn;
try {
//if GET....
//URL requestUrl = new URL(url + "?" + httpBuildQuery(data));
URL requestUrl = new URL(url);
conn = (HttpURLConnection) requestUrl.openConnection();
} catch (MalformedURLException e) {
return e.getMessage();
}
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setDoInput(true);
conn.setDoOutput(true);
PrintWriter writer = new PrintWriter(conn.getOutputStream());
writer.print(httpBuildQuery(data));
writer.flush();
writer.close();
String line;
BufferedReader bufferedReader;
StringBuilder sb = new StringBuilder();
InputStreamReader streamReader = null;
try {
streamReader = new InputStreamReader(conn.getInputStream(), "UTF-8");
} catch (IOException e) {
streamReader = new InputStreamReader(conn.getErrorStream(), "UTF-8");
} finally {
if (streamReader != null) {
bufferedReader = new BufferedReader(streamReader);
sb = new StringBuilder();
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
}
}
return sb.toString();
}
public static String httpBuildQuery(HashMap<String, String> data) {
String ret = "";
String k, v;
Iterator<String> iterator = data.keySet().iterator();
while (iterator.hasNext()) {
k = iterator.next();
v = data.get(k);
try {
ret += URLEncoder.encode(k, "utf8") + "=" + URLEncoder.encode(v, "utf8");
} catch (UnsupportedEncodingException e) {
}
ret += "&";
}
return ret.substring(0, ret.length() - 1);
}
public static String sengHTTPSGet(String url,HashMap<String, String> data) throws Exception {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
URL console = new URL(url);
HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
conn.setSSLSocketFactory(sc.getSocketFactory());
conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
// conn.connect();
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setDoInput(true);
conn.setDoOutput(true);
PrintWriter writer = new PrintWriter(conn.getOutputStream());
writer.print(httpBuildQuery(data));
writer.flush();
writer.close();
String line;
BufferedReader bufferedReader;
StringBuilder sb = new StringBuilder();
InputStreamReader streamReader = null;
try {
streamReader = new InputStreamReader(conn.getInputStream(), "UTF-8");
} catch (IOException e) {
streamReader = new InputStreamReader(conn.getErrorStream(), "UTF-8");
} finally {
if (streamReader != null) {
bufferedReader = new BufferedReader(streamReader);
sb = new StringBuilder();
while ((line = bufferedReader.readLine()) != null) {
sb.append(line);
}
}
}
return sb.toString();
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯