3

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

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

返回的响应没有任何设置器来设置 cookie/headers 大概是由于构建器模式。

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

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

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

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

任何帮助将不胜感激。

4

1 回答 1

2

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

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

于 2015-11-05T13:17:18.680 回答