[英]Rest web services(post) consumes json not working
因此,我試圖創建一個使用json的簡單Web服務帖子。 但是我RESTEASY002010: Failed to execute: javax.ws.rs.NotSupportedException: RESTEASY003065: Cannot consume content type
錯誤RESTEASY002010: Failed to execute: javax.ws.rs.NotSupportedException: RESTEASY003065: Cannot consume content type
我的網絡服務:
@POST
@Produces(MediaType.APPLICATION_XML)
@Path("teste1")
@Consumes(MediaType.APPLICATION_JSON)
public Response teste1(String product) {
String result = "Product created : " + product;
System.out.println("resultado");
System.out.println(result);
return Response.ok() //200
.entity("<erro> none </erro>")
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.header("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With").build();
}
我也嘗試做:
@Consumes("application/json")
但是我遇到了同樣的錯誤。 如果可以,我可以使其工作 :
@Consumes("*/*")
但是當我說它使用json時,我不明白為什么它不起作用。 要測試Web服務,我正在使用https://apitester.com/ 。 隨着以下郵政數據:
{
"key" : "value",
"array" : [
{ "key" : 1 },
{ "key" : 2, "dictionary": {
"a": "Apple",
"b": "Butterfly",
"c": "Cat",
"d": "Dog"
} },
{ "key" : 3 }
]
}
一般而言
@Consumes("application/json")
指定Web服務可以處理的內容媒體類型。
但是,您可能還需要在Content-Type
標頭中為您的請求顯式指定適當的類型。
我不熟悉https://apitester.com,但默認情況下它可能不發送Content-Type標頭
例如,在這種情況下,您的服務器可以將請求正文視為純文本。 該請求不會路由到您的端點,因為它不是為純文本設計的。
設置@Consumes(*/*)
解決此問題,因為錯誤的媒體類型也會與該模式匹配。
您能否確保將POST請求發送給Content-Type: application/json
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.