Ошибка сброса соединения SocketException на resttemplate.exchange - PullRequest
2 голосов
/ 18 июня 2019

Я начал получать сообщение об ошибке ConnectionReset при попытке сделать запрос к URL-адресу Apple API.

Я не внес изменения в код, но он неожиданно начал выдавать ошибки. Когда я вызываю URL с помощью команды curl, я могу получить ответ, но когда я вызываю его из кода, он выдает следующее исключение.

Что может быть причиной этой ошибки?

Caused by: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://api-applecareconnect.apple.com/enroll-service/1.0/show-order-details": Connection reset; nested exception is java.net.SocketException: Connection reset
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:534)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:482)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:430)


Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:210)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
    at sun.security.ssl.InputRecord.read(InputRecord.java:503)
    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 org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
    at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:82)
    at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
    at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:50)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:519)
    ... 122 more

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Оказывается, проблема в том, что политика брандмауэра была изменена без нашей информации. Он заблокировал доступ к яблочным серверам.

0 голосов
/ 26 июня 2019

Пожалуйста, смотрите мой ответ здесь Ошибка ввода-вывода при запросе POST для ... java.net.SocketException: сброс подключения

Кажется, это та же проблема. @EspringDev на самом деле указывает правильное направление. Что касается яблока, они поддерживают все версии от 1.0 до 1.3. Но используемый вами API может иметь политику безопасности SSL / TLS . Я надеюсь, что это решит проблему.

...