How to parse gzip encoded response with RestTemplate in Spring-Web

后端 未结 2 700
-上瘾入骨i
-上瘾入骨i 2020-12-01 11:17

After I modified Consuming a RESTful Web Service example to call get users by id from api.stackexchange.com I get JsonParseException:

com.fasterxml.jackson.cor

2条回答
  •  情书的邮戳
    2020-12-01 11:45

    private String callViaRest(String requestString, Steps step) {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.TEXT_XML);
        headers.add("Accept-Encoding", "application/gzip");
        HttpEntity entity = new HttpEntity(requestString, headers);
    
        byte[] responseBytes = jsonRestTemplate
                .exchange("yourUrl", HttpMethod.POST, entity, byte[].class).getBody();
        String decompressed = null;
        try {
            decompressed= new String(CompressionUtil.decompressGzipByteArray(responseBytes),Charsets.UTF_8);
        } catch (IOException e) {
            LOGGER.error("network call failed.", e);
        }
        return decompressed;
    }
    

提交回复
热议问题