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