Dropwizard:return 压缩结果
Dropwizard: return compressed result
我使用 dropwizard 并想 return 从我的服务器压缩结果。我该怎么做?
我有以下代码:
@GET
@Timed
@UnitOfWork
public EntityResponse getOutput(@QueryParam(value = "encode") String encode,@Context HttpServletResponse response) {
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
if (StringUtils.isNotEmpty(encode)) {
response.setHeader(HttpHeaders.CONTENT_ENCODING, "gzip");
}
return EntityResponse.success("result string");
}
我使用一些休息客户端,当我测试这个端点时,当 encode
参数不为空时,我看到 NO CONTENT
。也许我 return 回复错误,可以帮助我吗?
编辑:
我尝试根据 Chrome 提出请求并收到 This site can’t be reached ... might be temporarily down or it may have moved permanently to a new web address. ERR_CONTENT_DECODING_FAILED
您不需要手动执行此操作。只需在您的 Dropwizard Yaml 中启用 gzip 压缩并改用它。如果启用,所有在 Accept-Content-Encoding
header 中带有 gzip 的请求将自动将其响应实体用 gzip 编码。参见 http://www.dropwizard.io/0.9.1/docs/manual/configuration.html#gzip。
此外,您也不必手动设置内容编码 header。只需将 @Produces(MediaType.APPLICATION_JSON)
作为注释添加到您的方法中即可。
您现在可以删除方法中处理 header 和编码的所有逻辑和参数。
代码:
@GET
@Timed
@UnitOfWork
@Produces(MediaType.APPLICATION_JSON)
public EntityResponse getOutput() {
return EntityResponse.success("result string");
}
Yaml(最低配置):
server:
gzip:
bufferSize: 8KiB
我使用 dropwizard 并想 return 从我的服务器压缩结果。我该怎么做?
我有以下代码:
@GET
@Timed
@UnitOfWork
public EntityResponse getOutput(@QueryParam(value = "encode") String encode,@Context HttpServletResponse response) {
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
if (StringUtils.isNotEmpty(encode)) {
response.setHeader(HttpHeaders.CONTENT_ENCODING, "gzip");
}
return EntityResponse.success("result string");
}
我使用一些休息客户端,当我测试这个端点时,当 encode
参数不为空时,我看到 NO CONTENT
。也许我 return 回复错误,可以帮助我吗?
编辑:
我尝试根据 Chrome 提出请求并收到 This site can’t be reached ... might be temporarily down or it may have moved permanently to a new web address. ERR_CONTENT_DECODING_FAILED
您不需要手动执行此操作。只需在您的 Dropwizard Yaml 中启用 gzip 压缩并改用它。如果启用,所有在 Accept-Content-Encoding
header 中带有 gzip 的请求将自动将其响应实体用 gzip 编码。参见 http://www.dropwizard.io/0.9.1/docs/manual/configuration.html#gzip。
此外,您也不必手动设置内容编码 header。只需将 @Produces(MediaType.APPLICATION_JSON)
作为注释添加到您的方法中即可。
您现在可以删除方法中处理 header 和编码的所有逻辑和参数。
代码:
@GET
@Timed
@UnitOfWork
@Produces(MediaType.APPLICATION_JSON)
public EntityResponse getOutput() {
return EntityResponse.success("result string");
}
Yaml(最低配置):
server:
gzip:
bufferSize: 8KiB