我正在使用以下代码返回响应。我不知道我在哪里遗漏了什么,但是没有任何关于在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)
获取它,但似乎没有相同的方法来获取响应对象。
任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
您可以使用ODataResponse.fromResponse([来自writeFeed方法的响应])来接收ResponseBuilderInstance,它已包含您放入的响应中的内容。您可以设置自定义标头,然后调用build()方法收到最终的ODataResponse,您可以在处理器中返回。
或者您使用servletFilter直接在ServletResponse上设置它们。我建议在Olingo中使用fromResponse方法。