Java调用https接口

Java 使用httpclient 调用Https 接口 PKIX path building failed 问题分析。 PKIX path building failed 问题分析 阅读详情

http 与 https 区别

https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

上代码:
HttpsTrustClient 类

import javax.net.ssl.X509TrustManager;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

public class HttpsTrustClient implements X509TrustManager {
    @Override
    public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

    }

    @Override
    public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

    }

    @Override
    public X509Certificate[] getAcceptedIssuers() {
//        return new X509Certificate[0];
        return null;
    }
}

HttpRequestUtil 实现post请求

import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;

public class HttpRequestUtil {
    public static String sendPost(String url, String param) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            // 创建SSLContext对象,并使用我们指定的信任管理器初始化
            TrustManager[] tm = { new HttpsTrustClient() };
            SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, tm, new java.security.SecureRandom());

            // 从上述SSLContext对象中得到SSLSocketFactory对象
            SSLSocketFactory ssf = sslContext.getSocketFactory();
            // 打开和URL之间的连接
            URL realUrl = new URL(url);
            HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();
            conn.setSSLSocketFactory(ssf);
            // 设置通用的请求属性
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("content-Type", "application/json");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            // 发送请求参数
            out.print(param);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in = new BufferedReader(
                    new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {// 使用finally块来关闭输出流、输入流
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }
}

测试

public class Test {
	public static void main(String[] args){ 
        String url = "访问地址";
        Map<String,Object> param = new HashMap<String,Object>();
	    param.put("参数", "值");
	    String message = JSONUtils.toJSONString(param);
        String str = HttpRequest.sendPost(url, message);
        System.out.println(str);
	}
}

参考:https://blog.youkuaiyun.com/qq_17476231/article/details/95359207

Java 调用HTTPS接口绕过ssl验证 Java 调用HTTPS接口绕过ssl验证。 阅读详情

相关推荐

微服务项目调用其他项目https接口->POST/GET请求

sa

weixin_43386594的博客 735

java https请求,https请求如何调用

https请求如何在代码中调用

IT_51888_liang的博客 1万+

Java调用https接口,避免证书的方式

一、使用maven添加依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency> <depen

weixin_53107227的博客 724

Java调用HTTPS接口,绕过SSL认证

Java调用HTTPS,需要与客户端建立连接,但是建立连接的时候,需要进行SSL认证。因为我本次调用HTTPS接口的目的是调用数据,存储在表中,不需要跨环境,只在本地执行,所以进行SSL认证稍有繁琐,所以我决定绕过SSL认证。需要注意的是,代码中的URL、授权头信息、JSON参数等是示例数据,你需要根据实际情况进行修改和替换。是一个空实现的主机名验证器,它绕过了主机名验证,即使主机名不匹配,也会继续进行SSL连接。我的出参是这样的,所以按照自己的格式替换数据,便可以得到你想要的出参。

Recently祝祝的博客 1万+

大数据工程中的多模态数据处理技术

模态”(Modality)指的是数据的表现形式文本(Text):新闻、评论、文案等;图像(Image):照片、截图、医学影像等;音频(Audio):语音、音乐、环境声音等;视频(Video):短视频、监控视频、电影等(本质是图像+音频的组合);数值/结构化数据(Numerical/Structured):用户年龄、商品价格、传感器数据等;时间序列(Time Series):股票价格、物流轨迹、心率数据等。多模态数据(Multimodal Data)是指包含两种或以上模态的数据集。

AI云原生与云计算技术学院 1274

开源处理器Rocket的分支预测机制研究与性能评估(二)

Rocket是基于RISC-V指令集架构的开源处理器,具有分支预测功能,其实现了GShare分支预测机制,在分析Rocket处理器分支预测处理过程、分支预测实现原理的基础上,利用模拟器进行了性能测试,并依据测试结果,对Rocket处理器分支预测参数配置给出建议。

leishangwen的专栏 5691

Java 调用Http和Https接口

Java调用Http接口和Https接口 大多数我们调用的接口都是Http的,很少有Https的接口,近期做了个项目就用到和Https接口的请求调用,和大家分享一下心得。Http接口和Https接口主要是区别还是Https存在一个证书验证。针对Https和Http做出逻辑判断,对Https接口的证书,咱们可以进行忽略。 话不多说,请看代码 Service层,http和https的接口请求 ...

qq984676583的博客 6152

WSL2迁移后用户名不见了?一招教你快速恢复Ubuntu22.04默认用户

本文针对WSL2迁移后Ubuntu 22.04默认用户名丢失的常见问题,提供了详细的诊断与修复方案。通过分析迁移底层逻辑,指导用户使用`ubuntu2204.exe config --default-user`命令或配置`/etc/wsl.conf`文件快速恢复用户身份,并涵盖权限修复、冲突解决及自动化迁移脚本等进阶内容,确保子系统迁移后环境完整可用。

web39explorer的博客 558

JAVA利用HttpClient进行HTTPS接口调用

JAVA利用HttpClient进行HTTPS接口调用 为了避免需要证书,用一个类继承DefaultHttpClient类,忽略校验过程。 package com.elink.util; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apac

ernesto的博客 1735

Python经典编程习题100例:第32例:相反顺序输出列表

不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 本人初学Python,只为熟悉语法编写,大神请勿理会 点击下面链接 Python经典编程100例习题汇总 题目描述: 按相反的顺序输出列表的值。 解题思路: > 利用reverse函数逆序 代码: arr=['f','g','e','b'] print(arr) arr.reverse() print(arr) ...

优快云 精品推荐 1416

智能车图像处理5-入门级分析4 ---环岛的状态机与补线

PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。

taiyuezyh的博客 8244

java获取https网站证书,附带调用https:webservice接口

做好记录少走弯路:https://www.cnblogs.com/enenen/p/6238504.html 看似很麻烦但是却实可以使用 一、java 获取https网站证书:   1、创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader; import java.io.Fil...

Death黎明的博客 4197

金融领域图注意力网络的创新应用

随着金融市场的日益复杂和数据量的爆炸式增长,传统的数据分析方法在处理金融数据的复杂关系和结构时面临诸多挑战。图注意力网络(Graph Attention Network,GAT)作为一种新兴的深度学习技术,能够有效处理图结构数据,挖掘数据中的潜在关系。本文的目的在于深入探讨图注意力网络在金融领域的创新应用,涵盖风险评估、投资决策、欺诈检测等多个方面。通过理论分析、算法实现和实际案例展示,为金融从业者和研究者提供全面的技术参考,推动图注意力网络在金融领域的广泛应用。

AI云原生与云计算技术学院 721

java springmvc https_springMVC、https、GET调用别人提供的接口!!!

importorg.apache.http.HttpEntity;importorg.apache.http.HttpHost;importorg.apache.http.HttpStatus;importorg.apache.http.auth.AuthScope;importorg.apache.http.auth.UsernamePasswordCredentials;importorg.a...

weixin_31748999的博客 417

高通平台蓝牙学习-- 基于WCN6750 Bluetooth 5.2的讲解

摘要:蓝牙5.2解决方案WCN6750具备多项先进特性:完全兼容5.2标准及ANT+协议,支持2Mbps高速BLE和长距离传输;采用射频集成方案,与WLAN共享天线并支持5G并发;内置功率放大器,支持Class1/2传输;提供双音频流和Slimbus接口优化。其HCI UART接口支持3.2Mbps速率,通过BlueZ协议栈实现蓝牙5.2功能,包括2Mbps模式和长距离传输,符合核心规范要求。(149字)

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 3万+

JavaScript教程-字符集,Unicode转义序列,标识符,数据类型,数字,未定义值,浮点数,字符串,引用数据类型,类型检测,类型转换,运算符,关系运算符,

前端学习

VAN 213

Java 跳过证书方式调用https 接口

Java 跳过证书方式调用https 接口地址实例: package com.xuxueli.executor.sample.jboot; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; impor.

LookingTomorrow的博客 1508

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JAVA 调用https接口, java.security.cert.CertificateException

package com.easycare.store.util; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustMa...

a8605428的博客 1632

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java实时间隔调用https接口

package com.jkgis.dyjy.bigdata; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.HttpURLConnection; import jav...

weixin_43608538的博客 800

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java实现https接口测试_JAVA利用HttpClient进行HTTPS接口调用的方法

本文介绍了JAVA利用HttpClient进行HTTPS接口调用的方法,分享给大家,具体如下:1.为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ss...

weixin_39946266的博客 793

java 调用https 证书_java 调用https接口,绕过证书,使用HttpsURLConnection

直接上代码,可用第一个类:package com.yili.test.http;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.HttpsURLConn...

weixin_33121737的博客 726

java调用https接口

http与https区别 https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比h...

cmm1的博客 1万+

Java调用https接口get方法,无证书

1.工具类 package springmvc.wx.controller.train; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import javax...

许小珊的博客 3155

java webclient_Java调用Http/Https接口(7)--WebClient调用Http/Https接口

packagecom.inspur.demo.http.client;importjava.io.File;importjava.io.FileInputStream;importjava.security.KeyStore;importjava.util.LinkedList;importjava.util.List;importjava.util.function.Consumer;impor...

weixin_30109877的博客 840

java getscheme_Java利用httpclient通过get、post方式调用https接口的方法

通过httpclient的get post方式调用http很常见。一般都是httpclient client = new defaulthttpclient();httppost post = new httppost(http://127.0.0.1/login);但是如果要调用https这个方式就不行了。就要修改defaulthttpclientorg.apache.httpcomponent...

weixin_29240711的博客 511
上一篇: TimeUtil 时间工具类——随时更新
下一篇: 2059 - Authentication plugin ‘xxxxxxx’ cannot be loaded:XXXX(无法加载身份验证插件)解决
GK_hello
博客等级 码龄8年 6粉丝 18原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值