REST技術第七步 操作cookie

在response中設置cookie,在JAX-RS的API中需要怎麼做?
首先需要用到一個類:javax.ws.rs.core.NewCookie。這個類是繼承自cookie類的。
首先資源類則不能返回正常的HTTP實體了。因爲這樣就沒法設置cookie。
舉個例子,下面這種方法就沒法添加cookie了。

@POST
public String post(){
    return"hello world";
}

如果要操作cookie,就必須返回一個更復雜的對象,這就是javax.ws.rs.core.Response類。
這個類可以設置各種HTTP head,其中就包括了cookie。
Response由於是一個抽象類,所以不能new出來,但是有靜態方法。
常見的是 Response.ok,這個方法指定了返回的http狀態碼爲200。
但是這個ok方法返回的並不是Response對象,而是ResponseBuilder。
ResponseBuilder中有cookie方法和builder方法,這樣才最終產生一個Response對象。
下面是代碼示例:

@GET
public Response service(){
    return Response.ok("hello world").cookie(new NewCookie("A","B")).build();
}

這樣在返回的HTTP頭中就加上了
Set-Cookie:A=B; Version=1; Discard

發佈了93 篇原創文章 · 獲贊 24 · 訪問量 182萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章