2015-11-04 51 views
3

我使用下面的代碼段返回響應。我不知道我缺少的東西,但是沒有任何地方涉及到的OData庫設置cookie的討論。如何在OData響應Olingo中設置cookie?

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

返回的響應沒有任何setter來設置cookie/headers,這大概是由於builder模式造成的。

在ODataResponseBuilder,有一個設置頭

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

的方式,但在這種情況下,我不知道如何EntitySet的設置爲建設者在writeFeed的情況。

說到HttpServletRequest,我能通過ODataContext#getParameter(ODataContext.HTTP_SERVLET_REQUEST_OBJECT)獲得它,但似乎沒有獲得響應對象的等效方法。

任何幫助將不勝感激。

回答

2

您可以使用ODataResponse.fromResponse([writeFeed方法的響應])接收ResponseBuilderInstance,該ResponseBuilderInstance已包含您放入的響應中的內容。您可以在其中設置自定義標頭,然後調用build()方法接收您可以在處理器中返回的最終ODataResponse。

或者你使用ServletFilter中直接在ServletResponse的設置。我建議在Olingo中使用fromResponse方法。

+0

我們去帶過濾器的方法。我怎麼能錯過#fromResponse。謝謝。 – pinkpanther