【问题标题】:http header not found in containerResponseContext在 containerResponseContext 中找不到 http 标头
【发布时间】:2017-05-02 14:33:52
【问题描述】:

我通过注入 HttpServletResponse 在我的 rest api 中设置了一个 http 响应头“APP-ID”。我有一个查看传出响应的容器响应过滤器。在该响应中,我没有看到“APP-ID”标题! 但是,我的邮递员客户端显示了响应标头。知道为什么会这样吗?如何访问“APP-ID”标头?

【问题讨论】:

  • HttpServletResponse 和 ContainerResponseContext 没有任何联系
  • 如何打印或记录我在球衣过滤器中设置的响应标头?没有办法吗?
  • 只需在响应中设置它们。例如return Response.ok(body).header("API-ID", value).build()
  • 我正在返回一个 json 响应,注入 httpservletResponse 并在那里设置标题。我在邮递员响应中看到了标题。我有没有办法在我的代码中打印 http 响应?
  • getHeaderNames() 怎么样。迭代它并将其用于getHeader(String)。我刚刚测试过,效果很好

标签: http jersey http-headers


【解决方案1】:

您可以使用 ContainerResponse。

public class CustomFilter implements ResourceFilter, ContainerRequestFilter, ContainerResponseFilter, javax.servlet.Filter {

    @Override
    public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
        response.getHttpHeaders().add("APP-ID", "whatever ");
        return response;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 2015-08-23
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多