java - 在 Eclipse 中获取 SSL 异常
问题描述
访问肥皂网络服务时出现 ssl 异常。可以通过 SOAP UI 工具访问相同的 API。我检查了代理设置,但没有发现任何问题。还验证了证书,它们尚未过期
URL u = new URL(apiURL);
// URLConnection uc = u.openConnection();
HttpsURLConnection uc = (HttpsURLConnection) u.openConnection();
connection = (HttpsURLConnection) uc;
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
// connection.setRequestProperty("SOAPAction", apiURL);
// connection.connect();
OutputStream out = connection.getOutputStream();
Writer wout = new OutputStreamWriter(out);
wout.write(request);
wout.flush();
wout.close();
out.close();
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
at sun.security.ssl.InputRecord.read(InputRecord.java:527)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.
connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1334)
at
sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1309)
at
sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:
259)
解决方案
该错误表示您收到的是纯文本消息而不是加密的 ssl 消息,当端口不正确时会发生这种情况。
推荐阅读
- javascript - 在一页上加载多个 vue 实例后,其中一个实例不起作用
- r - 多变量分布错误:sigma' 不是正定的
- excel - 如何在 vlookup 不起作用的 excel 范围内拉出最近的字符串?
- flutter - Flutter 在播放前缓存视频在 Futurebuild 上为空
- c - 如何从 Char 中仅读取 Int
- android - 将 compose 添加到 buildFeatures 会产生 NoSuchMethodError
- neo4j - Apoc.merge.relationship() 在 Neo4j 中创建重复项
- spring-webflux - Mono 类型中的方法 flatMap()
- html - 盒子的最后一部分(底部)
- vue.js - 如何让 Switch/Case 只查看特定断点?