Не удается подключиться к службе HTTP - PullRequest
0 голосов
/ 29 мая 2018

Привет. Я пытаюсь подключиться к услуге, но при вызове

 CloseableHttpResponse response = httpclient.execute(httpget);
    data = IOUtils.toString(response.getEntity().getContent(),
                    StandardCharsets.UTF_8);

происходит сбой. Я не звоню близко в ответ.Следовательно, я предполагаю, что это не могло быть, потому что соединение было закрыто, прежде чем все данные были прочитаны?Как я могу справиться с этим в моем коде?Как это должно быть обработано в производстве?Это проблема с моим кодом или службой?

Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:221) ~[?:1.8.0]
    at java.net.SocketInputStream.read(SocketInputStream.java:152) ~[?:1.8.0]
    at com.ibm.jsse2.b.a(b.java:240) ~[?:8.0 build_20171107]
    at com.ibm.jsse2.b.a(b.java:142) ~[?:8.0 build_20171107]
    at com.ibm.jsse2.at.a(at.java:630) ~[?:8.0 build_20171107]
    at com.ibm.jsse2.at.a(at.java:893) ~[?:8.0 build_20171107]
    at com.ibm.jsse2.f.read(f.java:60) ~[?:8.0 build_20171107]
    at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) ~[httpclient-4.5.2.jar:4.5.2]

1 Ответ

0 голосов
/ 29 мая 2018

Кажется, что содержимое сущности не может быть передано в потоковом режиме, потому что оно закрыто.Connection reset обычно говорит вам, что с вашим запросом / ответом GET что-то не так.

Однако вы также можете посмотреть на это:

Какой рекомендуемый способ получитьHTTP-ответ в виде строки при использовании HTTP-клиента Apache?

Принятый ответ показывает хороший способ обработки HTTP-ответов (с использованием EntityUtils и HttpResponse).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...