Java> использование InputStream с большими файлами в органе получения ответа. apache .http.ConnectionClosedException - PullRequest
0 голосов
/ 03 марта 2020

Вот предварительный просмотр моего кода:

WebTarget target = client.target(url);
response = target.request().header("Authorization", token).header("X-RequestID", uuid).get();

if (response.getStatus() == 200) {
    inputStream = response.readEntity(InputStream.class);
    return IOUtils.readFully(inputStream, response.getLength());
}

Я получил следующее исключение:

org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 15455297; received: 3667347
    at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:178) ~[httpcore-4.4.5.jar!/:4.4.5]
    at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:135) ~[httpclient-4.5.4.jar!/:4.5.4]
    at java.io.FilterInputStream.read(FilterInputStream.java:133) ~[?:?]
    at org.jboss.resteasy.specimpl.AbstractBuiltResponse$InputStreamWrapper.read(AbstractBuiltResponse.java:580) ~[resteasy-jaxrs-3.7.0.Final.jar!/:3.7.0.Final]
    at org.apache.commons.io.IOUtils.read(IOUtils.java:3077) ~[commons-io-2.6.jar:2.6]
    at org.apache.commons.io.IOUtils.readFully(IOUtils.java:3183) ~[commons-io-2.6.jar:2.6]
    at org.apache.commons.io.IOUtils.readFully(IOUtils.java:3222) ~[commons-io-2.6.jar:2.6]

Я пытаюсь проверить, идет ли ошибка с конечной точки. Однако тот же вызов API, который выполняется в curl и postman, фактически загружает весь файл без ошибок.

Любые советы о том, как отладить это, будут оценены. Спасибо!

...