使用java发送https的请求详解编程语言
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相关文章
- java backoff_Java BackOff类代码示例
- java输出值取后两位小数,Java输出结果保留两位小数
- java启动器_JAVA基础:Java 启动器如何查找类
- Java基础知识总结(超详细整理),java从入门到精通pdf「建议收藏」
- java redis锁_Java中Redis锁的实现[通俗易懂]
- java官方编译器_JAVA 编译器
- java并发编程(1):Java多线程-基本线程类-基础知识复习笔记
- Java IO系列(三):DataInputStream,DataOutputStream和RandomAccessFile详解编程语言
- java 检测 Java 是否运行在64bit 的JVM上详解编程语言
- java JNI: C 语言调用 Java 方法示例详解编程语言
- Java学习笔记之九java二维数组及其多维数组的内存应用拓展延伸详解编程语言
- Java学习笔记之六java三种循环(for,while,do……while)的使用方法及区别详解编程语言
- Java学习笔记之一java关键字及作用详解编程语言
- Java Web 清除缓存详解编程语言
- java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err详解编程语言
- Java DESede 加解密(”DESede/ECB/PKCS5Padding”)详解编程语言
- Java问题-java进程占用内存过高,排查原因详解编程语言
- JAVA利用HttpClient进行HTTPS接口调用详解编程语言
- 【Java】基于NIO的多人聊天室详解编程语言
- Java 实现导出excel表 POI详解编程语言
- 实现使用Java实现Redis消息队列(redis消息队列java)
- Java远程登录Linux服务器入门指南(java远程linux)
- 时间解决Java使用Redis进行超时处理的方法(redisjava过期)
- 实现Redis中Java键值对的过期管理(redisjava过期)
- 如何在Linux系统下有效地启动Java程序,让你的代码在Linux中也能正常运行?(linux下启动java)
- Linux下Java应用打包实践(linux java打包)
- Java加速Oracle开发之旅(java中oracle包)