如何在OData响应Olingo中设置cookie?

时间:2015-11-04 08:47:48

标签: java servlets cookies odata olingo

我正在使用以下代码返回响应。我不知道我在哪里遗漏了什么,但是没有任何关于在OData库中设置cookie的讨论。

ODataResponse resp = EntityProvider.writeFeed(contentType, entitySet, results, propertiesBuilder.build());

返回的响应没有任何setter来设置cookie / headers可能是因为构建器模式。

在ODataResponseBuilder中,有一种设置标题的方法

ODataResponse resp = resp.header("Set-Cookie", "sampleCookie="+cookieValue).build()

但是在这种情况下,我不确定如何将entitySet设置为构建器,就像writeFeed一样。

当谈到HttpServletRequest时,我能够通过ODataContext#getParameter(ODataContext.HTTP_SERVLET_REQUEST_OBJECT)获取它,但似乎没有相同的方法来获取响应对象。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

您可以使用ODataResponse.fromResponse([来自writeFeed方法的响应])来接收ResponseBuilderInstance,它已包含您放入的响应中的内容。您可以设置自定义标头,然后调用build()方法收到最终的ODataResponse,您可以在处理器中返回。

或者您使用servletFilter直接在ServletResponse上设置它们。我建议在Olingo中使用fromResponse方法。