由於功能要求,我正在開發一個Web API,我想添加對所有媒體類型的支持。我已經嘗試在課程級別和方法級別提供@consumes("*/(")
。但是,當我嘗試訪問我的api時,application/json
媒體類型爲Content-Type
標題,但它不適用於我。JAX-RS使用@consume註解支持所有媒體類型
我已經看過@consumes註釋的實現,其默認值是*/*
,所以我試圖僅使用這個註釋作爲@consumes
,所以它可以添加默認值,但那不起作用。 暫且我用這個註釋作爲
@Consumes({"application/*","text/*"})
它允許客戶端與這兩種媒體類型組的所有可能的媒體類型的訪問我的API。但如果客戶端發送請求multipart/signed
或任何其他媒體類型,它仍然搞砸了。
要說一個端點可以處理_any_類型,就是說你有一個提供程序配置爲處理每種類型。澤西島不能這樣做。它支持JSON,XML,多部分等通用類型,但即使這些類型(除XML的默認支持外)也需要進行配置(通常通過添加支持庫並註冊它們)。最好的做法是不支持任何類型,即'*/*',並且只使用那些你知道你配置了支持的類型。 –
查看[第8章和第9章](https://jersey.java.net/documentation/latest/index.html),以更好地瞭解提供者是什麼,Jersey支持不同的媒體類型。 –
是的,我想'*/*'爲我工作。但它不起作用。如果我根本不使用@consumes註釋,那麼它再次給我例外。 –