如何覆盖泽西客户端中的响应头

mon*_*ack 2 rest json jersey

我有一个球衣客户端,我试图解组一个响应实体.问题是远程Web服务发送回application/octet-stream作为内容类型,因此Jersey不知道如何解组它(我有类似的错误,text/html回来用于XML等).我无法更改Web服务.

我想要做的是覆盖内容类型并将其更改为application/json,以便jersey知道要使用哪个编组器.

我无法使用json marshaller注册application/octet-stream,因为对于给定的内容类型,我实际上可能会找回各种奇怪的东西.

Mar*_*ula 5

正如laz所指出的,ClientFilter是要走的路:

client.addFilter(new ClientFilter() {
    @Override
    public ClientResponse handle(ClientRequest request) throws ClientHandlerException {
        request.getHeaders().putSingle(HttpHeaders.CONTENT_TYPE, "application/json");
        return getNext().handle(request);
    }
});
Run Code Online (Sandbox Code Playgroud)