如何从返回byte []的Web服务中读取响应

4 java rest byte bytearray

我有这个我的网络服务代码:

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public static Response fillData(final Map<String, Object> data, final   String name, @Context final ServletContext context) {  
       ...  
       final byte[] file = ...
       return Response.ok(file).build();
Run Code Online (Sandbox Code Playgroud)

如何在客户端阅读回复?

final javax.ws.rs.core.Response reponse = client.target(URL_REST).path("/path").request(MediaType.APPLICATION_JSON).get();
Run Code Online (Sandbox Code Playgroud)

这是完全错误的(ByteArray不存在),但我想做类似的事情:

byte[] pdfByteArray = reponse.readEntity(ByteArray.class);
Run Code Online (Sandbox Code Playgroud)

我能怎么做?

mp9*_*1de 10

使用 java.io.InputStream

InputStream is = reponse.readEntity(InputStream.class);
Run Code Online (Sandbox Code Playgroud)

这允许您以流方式读取而不是一次读取所有字节.


小智 5

就像上面建议的 Gabor 一样,我将只使用 byte[].class 谢谢!