当我尝试将ASP.NET实例中的http实体解析为字符串时,我得到了IoException
。
String responseBody = IOUtils.toString(httpResponse.getEntity().getContent(), responseCharset)
或
String responseBody =EntityUtils.toString((httpResponse.getEntity());
我尝试使用这两种方法来实现。除了 ASP.NET api 之外,一切正常,可以通过Postman正常请求。
我得到了在''运行时抛出异常的函数。第二次。
public static long copyLarge(InputStream input, OutputStream output, byte[] buffer) throws IOException {
long count = 0;
int n = 0;
while (EOF != (n = input.read(buffer))) {
output.write(buffer, 0, n);
count += n;
}
return count;
}
堆栈如下:
块编码消息体的过早结束:预期关闭块 org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:268) 在 org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:227) 在 org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:186) 在 org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137) 在sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)at java.io.InputStreamReader.read(InputStreamReader.java:184)at java.io.Reader.read(Reader.java:140)at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1928)at at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1907)at at org.apache.commons.io.IOUtils.copy(IOUtils.java:1884)at org.apache.commons.io.IOUtils.copy(IOUtils.java:1834)at org.apache.commons.io.IOUtils.toString(IOUtils.java:705)
尝试从EofSensorInputStream中读取缓冲区时第二种方法也失败
软件包: HttpClient的-4.5.1, 的HttpCore-4.4.3, Httpmine-4.5.1, 常见-IO-2.3。 JDK: 1.8.0_65
提前致谢!