我有一个球衣客户,我想与该客户解组。问题是远程Web服务将应用程序/八位字节流作为内容类型发送回去,因此Jersey不知道如何解组(我对XML等返回text / html具有类似的错误)。我无法更改Web服务。
我想做的是覆盖内容类型,并将其更改为application / json,以便jersey知道要使用哪个编组器。
我无法使用json marshaller注册application / octet-stream,因为对于给定的内容类型,我实际上可能会找回各种奇怪的地方。
正如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); } });