【发布时间】:2019-11-11 18:02:05
【问题描述】:
目前我正在尝试使用 HTTPS 和 POST 方法寻址网络服务器,并将 JSON 文件发送到该服务器。我已经尝试了几个教程,但不幸的是我只能找到 HTTP 和 Post 而不是 HTTPS 的示例。我忘了实施什么吗? 我想提供服务器的代码,但我只收到了JSON文件的地址和格式。
以前有没有人遇到过这个问题或者可以帮助我? 谢谢
public static void main(String[] args) throws IOException {
URL url = new URL(" https://webservice.com:1234");
HttpsURLConnection con = (HttpsURLConnection)url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json; utf-8");
con.setRequestProperty("Accept", "application/json");
//con.setDoInput(true);
con.setDoOutput(true);
String jsonInputString = "\"ID\": \"12\"";
System.out.println(jsonInputString);
try(OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
os.flush();
}
System.out.println(con.getResponseCode());
不幸的是,我总是收到此错误消息:
线程“主”javax.net.ssl.SSLException 中的异常:不支持或 无法识别的 SSL 消息位于 java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:439) 在 java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:184) 在 java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:108) 在 java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1180) 在 java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1091) 在 java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402) 在 java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567) 在 java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:187) 在 java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1362) 在 java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1337) 在 java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:247) 在 test.main(test.java:40)
进程以退出代码 1 结束
【问题讨论】:
-
我注意到您的
new URL(" https://webservice.com:1234");上有一个空格,是不是拼写错误? -
只是来自 IDE 的复制粘贴错误,抱歉。
-
可能与问题无关,但您的
String jsonInputString = "\"ID\": \"12\"";不是有效的json。一个有效的 json 对象应该类似于{"ID":"12"}. -
这是 IntelliJ 的自动补全。当我对 JSON 进行系统输出时,它显示为“ID”:“12”。此外,我在它周围添加了 { } 括号。不幸的是,这不会更改错误消息。
标签: java json post https webservice-client