2012-11-08 24 views
0

我有一個REST服務,使用球衣,並且不想在每個請求中發送「Content-Type」=「application/json」。與JSON REST工作沒有顯式發送頭應用程序/ json?

我可以將其設置爲我的服務的默認設置嗎?

現在我得到錯誤415不支持的媒體類型因爲我沒有發送這個頭。

我的服務是一樣

@Path("/insert") 
@POST 
@Consumes({MediaType.APPLICATION_JSON}) 
public Response test(Foo request) {....} 

回答

0

部分解決。

我改簽名從

public Response test(Foo request) {} 

public Response test(@QueryParam("body") String request) {} 

手動desserialize JSON與

Foo requestObj = new ObjectMapper().readValue(request, Foo.class); 

而改變POST到GET(因爲我不關心REST規範)

注意:這取決於jackson-mapper-asl-1.9.2.jar,就我而言。

1

您不能設置客戶的默認服務器上。

不過,你可以使用*/*

@Consumes({MediaType.WILDCARD_TYPE}) 

但是,如果客戶端實際發送application/json沒有設置適當Content-Type頭,服務器將接受請求,但沒有辦法反序列化的內容。

所以請爲每個請求和響應設置正確的標題。