0

我正在为基于 REST 的服务使用 Apache CXF 框架。

在 HTTPServletResponse 中,我正在添加一个 cookie(使用 addCookie(Cookie cookie) 方法),但它没有被成功添加,因为每当我再次调用相同的 API 时,我都看不到/使用添加的 cookie。

我正在使用 REST 客户端调用 API,我可以在 Respose 标头中看到 Set-Cookie 标头,但它没有被设置。

这里会有什么问题?

4

1 回答 1

0

好吧,实际上已经设置了 cookie。您会注意到,对您的 api 的进一步请求会在“请求标头”中携带 cookie。要检查 cookie,请在您的服务实现中包含以下代码片段:

  1. 在实现类中,添加如下注解

    @Context
    private HttpHeaders headers;
    
  2. 现在,在要检查标题的那个类的方法中,添加此代码

    if(headers.getRequestHeaders() != null) {
        for(Entry<String, List<String>> entry : headers.getRequestHeaders().entrySet()) {
            System.out.println("entry.getKey() >>>>>>>>>>> "+entry.getKey());
            System.out.println("entry.getValue() >>>>>>>>>> "+entry.getValue());
        }
    }
    

在这里,entry.getKey() 将显示标题名称,entry.getValue() 将显示此键所持有的字符串值列表。如果设置,您的 cookie 将出现在标题“cookie”下。我希望这会有所帮助。谢谢。

于 2013-09-16T11:24:03.623 回答