Java获取http和https协议返回的json数据
发布时间 - 2026-01-10 22:31:08 点击率:次现在很多公司都是将数据返回一个json,而且很多第三方接口都是返回json数据,而且还需要使用到http协议,http协议是属于为加密的协议,而https协议需要SSL证书,https是将用户返回的信息加密处理,然而我们要获取这些数据,就需要引入SSL证书。现在我提供两个方法,帮助各位如何获取http和https返回的数据。

获取http协议的数据的方法,如下:
public static JSONObject httpRequest(String requestUrl, String requestMethod) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
URL url = new URL(requestUrl);
// http协议传输
HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection();
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 将返回的输入流转换成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (Exception e) {
e.printStackTrace();
}
return jsonObject;
}
获取https协议的数据的方法,如下:
public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 当有数据需要提交时
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 将返回的输入流转换成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
log.error("Weixin server connection timed out.");
} catch (Exception e) {
log.error("https request error:{}", e);
}
return jsonObject;
}
获取https协议的数据和获取http协议的区别在于
// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
大家有更好的方法欢迎留言分享,以上就是本次共享的内容 。还有,提示一下,如果复制中,缺失jar包,请自行下载
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# java
# https
# json数据
# java返回json数据
# Java实现调用对方http接口得到返回数据
# java实现http的Post、Get、代理访问请求
# Java如何实现http接口参数和返回值加密
# 都是
# 管理器
# 中得
# 第三方
# 还需
# 要使
# 大家多多
# 欢迎留言
# 请自行
# setDoOutput
# true
# false
# setUseCaches
# setDoInput
# url
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建支持数据库操作的智能建站平台?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
如何快速查询网址的建站时间与历史轨迹?
如何撰写建站申请书?关键要点有哪些?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
大同网页,大同瑞慈医院官网?
如何自定义建站之星模板颜色并下载新样式?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
佛山网站制作系统,佛山企业变更地址网上办理步骤?
Laravel如何使用withoutEvents方法临时禁用模型事件
使用Dockerfile构建java web环境
如何在IIS中新建站点并解决端口绑定冲突?
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Laravel模型事件有哪些_Laravel Model Event生命周期详解
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
如何解决hover在ie6中的兼容性问题
5种Android数据存储方式汇总
如何在宝塔面板中创建新站点?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Android 常见的图片加载框架详细介绍
网站制作大概多少钱一个,做一个平台网站大概多少钱?
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
如何在阿里云虚拟主机上快速搭建个人网站?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
利用JavaScript实现拖拽改变元素大小
如何快速重置建站主机并恢复默认配置?
如何快速选择适合个人网站的云服务器配置?
如何在阿里云香港服务器快速搭建网站?
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
如何在阿里云域名上完成建站全流程?
Laravel Session怎么存储_Laravel Session驱动配置详解
如何快速辨别茅台真假?关键步骤解析
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
Laravel如何创建自定义Facades?(详细步骤)
上一篇:鑫存管提现方法指南
上一篇:鑫存管提现方法指南

