zl程序教程

您现在的位置是:首页 >  后端

当前栏目

使用java发送https的请求详解编程语言

JAVAHTTPS编程语言 使用 详解 请求 发送
2023-06-13 09:20:28 时间
public class HttpsGetData { 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; String _url=""; Map String,String _params; public HttpsGetData(String url,Map String,String keyValueParams) this._url=url; this._params=keyValueParams; public String Do() throws Exception String result = ""; BufferedReader in = null; try { String urlStr = this._url + " " + getParamStr(); System.out.println("GET请求的URL为:"+urlStr); SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom()); URL realUrl = new URL(urlStr); // 打开和URL之间的连接 HttpsURLConnection connection = (HttpsURLConnection) realUrl.openConnection(); //设置https相关属性 connection.setSSLSocketFactory(sc.getSocketFactory()); connection.setHostnameVerifier(new TrustAnyHostnameVerifier()); connection.setDoOutput(true); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8")); String line; while ((line = in.readLine()) != null) { result += line; System.out.println("获取的结果为:"+result); } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); //e.printStackTrace(); throw e; // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } catch (Exception e2) { //e2.printStackTrace(); throw e2; return result; private String getParamStr() String paramStr=""; // 获取所有响应头字段 Map String, String params = this._params; // 获取参数列表组成参数字符串 for (String key : params.keySet()) { paramStr+=key+"="+params.get(key)+" //去除最后一个" " paramStr=paramStr.substring(0, paramStr.length()-1); return paramStr;

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10155.html

cjavawindows