解压缩GZIP http-response(使用jersey client api,java)

Lar*_*rry 5 java gzip jersey jersey-1.0

有人可以告诉我在从某些Http调用获得响应时解压缩GZIP内容需要做些什么.

要拨打电话我使用Jersey客户端API,请参阅以下代码:

String baseURI = "http://api.stackoverflow.com/1.1/answers/7539863?body=true&comments=false";
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource wr = client.resource(baseURI); 
ClientResponse response = null;
response = wr.get(ClientResponse.class);
String response_data = response.getEntity(String.class);

System.out.println(response_data);
Run Code Online (Sandbox Code Playgroud)

但输出是GZIP,看起来像:

{J?J??t??`$?@??????....
Run Code Online (Sandbox Code Playgroud)

如果我能实现以下内容会很好:

  • 能够检测内容是否是GZIP;
  • 如果没有,请在String中正常处理; if,so解压缩并获取String中的内容

Mar*_*ula 14

只需将GZIPContentEncodingFilter添加到您的客户端:

client.addFilter(new GZIPContentEncodingFilter(false));
Run Code Online (Sandbox Code Playgroud)