簡體   English   中英

訪問HttpsURLConnection后連接到HttpURLConnection時出現SocketException

[英]SocketException when connecting to HttpURLConnection after accessing HttpsURLConnection

我有一個函數使用HttpUrlConnection來調用遠程客戶端上的服務。 在我們添加了只能使用HttpsUrlConnection調用的新的安全遠程客戶端之前,此功能可以正常工作。

調用新的https遠程客戶端可以正常工作,在調用新客戶端之后,舊客戶端將返回java.net.SocketException: Connection reset嘗試獲取InputStream對象時java.net.SocketException: Connection reset

我的代碼如下所示:

conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
conn.setRequestMethod("POST");
out = conn.getOutputStream();
writer = new OutputStreamWriter(out);
writer.write(strJson);
writer.close();
in = conn.getInputStream();  // connection reset error here.
reader = new InputStreamReader(in);
rd = new BufferedReader(reader);
while ((line = rd.readLine()) != null) {
    result += line;
}
rd.close();
in.close();
reader.close();
out.close();
conn.disconnect();

有人知道發生了什么事嗎? 先感謝您。

堆棧跟蹤如下所示:

java.net.SocketException: Connection reset 
   at java.net.SocketInputStream.read(SocketInputStream.java:196)
   at java.net.SocketInputStream.read(SocketInputStream.java:122)
   at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
   at sun.security.ssl.InputRecord.read(InputRecord.java:480)
   at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
   at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:891)
   at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
   at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
   at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
   at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
   at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:690)
   at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
   at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:661)
   at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1324)
   at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)

我仍然不知道是什么導致錯誤發生。 我的解決方案是不使用java.net.HttpURLConnection,而是使用org.apache.http.impl.client.DefaultHttpClient。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM