将HttpEntity转换为String

时间:2016-10-28 03:19:08

标签: java asp.net io tostring apache-httpclient-4.x

当我尝试将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

提前致谢!

0 个答案:

没有答案