gpt4 book ai didi

java - Dropwizard:返回压缩结果

转载 作者:行者123 更新时间:2023-11-30 10:27:56 24 4
gpt4 key购买 nike

我使用 dropwizard 并想从我的服务器返回压缩结果。我该怎么做?

我有以下代码:

@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。也许我错误地返回响应,可以帮助我吗?

编辑:我尝试通过 Chrome 发出请求并收到 This site can't be reached ... might be temporary down or it may have permanently moved 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

关于java - Dropwizard:返回压缩结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45009987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com