我正在嘗試將帶有 Spring Rest 模板的 POST 請求發送到某個 URL 并獲取 java.net.SocketException:連接重置。這是實際執行的代碼片段:ResponseEntity<Void> response = restOperations.exchange(eventLoggingHost, HttpMethod.POST, httpEntity, Void.class);我得到以下異常:java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) ~[?:1.8.0_131] at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_131] at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[?:1.8.0_131] at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[?:1.8.0_131] at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[?:1.8.0_131] at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735) ~[?:1.8.0_131] at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678) ~[?:1.8.0_131] at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1569) ~[?:1.8.0_131] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474) ~[?:1.8.0_131] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) ~[?:1.8.0_131] at org.springframework.http.client.SimpleClientHttpResponse.getRawStatusCode(SimpleClientHttpResponse.java:55) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]這可能是什么原因造成的?我已經閱讀了一些關于封閉式套接字的內容,但我沒有在這個級別上操作任何這些概念。
1 回答

溫溫醬
TA貢獻1752條經驗 獲得超4個贊
事實證明,某些大 IP 服務設置的網絡級別請求超時。我們不得不要求維護工程師增加超時時間,以便有時間處理我們的請求。
當然,設置請求持續時間限制是有原因的,必須考慮重構代碼以分割長時間執行的請求,而不僅僅是增加超時。
添加回答
舉報
0/150
提交
取消