簡體   English   中英

REST Web服務(發布)消耗JSON不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM