Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RESTWeb服务(post)使用json不工作_Java_Json_Web Services - Fatal编程技术网

Java RESTWeb服务(post)使用json不工作

Java RESTWeb服务(post)使用json不工作,java,json,web-services,Java,Json,Web Services,因此,我试图创建一个使用json的简单webservice帖子。但是我得到的错误是:无法执行:javax.ws.rs.NotSupportedException:RESTEASY003065:无法使用内容类型 我的网络服务: @POST @Produces(MediaType.APPLICATION_XML) @Path("teste1") @Consumes(MediaType.APPLICATION_JSON) public Response teste1(String product) {

因此,我试图创建一个使用json的简单webservice帖子。但是我得到的错误是:无法执行:javax.ws.rs.NotSupportedException:RESTEASY003065:无法使用内容类型

我的网络服务:

@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("*/*")
但当我说它使用json时,我不明白为什么它不工作。来测试我正在使用的Web服务。使用以下Post数据:

{
    "key" : "value",
    "array" : [
        { "key" : 1 },
        { "key" : 2, "dictionary": {
                "a": "Apple",
                "b": "Butterfly",
                "c": "Cat",
                "d": "Dog"
            } },
        { "key" : 3 }
    ]
}
总的来说

@Consumes("application/json")
指定webservice可以处理的内容媒体类型

但您可能还需要在
内容类型
标题中为您的请求明确指定适当的类型

我不熟悉,但默认情况下,它可能不会发送内容类型标题

例如,在这种情况下,服务器可以将请求正文视为纯文本。该请求不会路由到您的端点,因为它不是为纯文本设计的

设置
@消耗(*/*)
可以修复该问题,因为错误的媒体类型也与该模式匹配

请确保您将
内容类型:application/json
与POST请求一起发送好吗?

通常

@Consumes("application/json")
指定webservice可以处理的内容媒体类型

但您可能还需要在
内容类型
标题中为您的请求明确指定适当的类型

我不熟悉,但默认情况下,它可能不会发送内容类型标题

例如,在这种情况下,服务器可以将请求正文视为纯文本。该请求不会路由到您的端点,因为它不是为纯文本设计的

设置
@消耗(*/*)
可以修复该问题,因为错误的媒体类型也与该模式匹配

请确保在POST请求中发送
内容类型:application/json