Java Jersey客户端导致415个不受支持的媒体类型

Java Jersey客户端导致415个不受支持的媒体类型,java,jersey,client,media,Java,Jersey,Client,Media,这样做的明显原因是没有提供适当的内容类型。但我在提供。我仍然得到不支持的媒体类型。不知道为什么。非常感谢您的帮助 Client c = Client.create(); WebResource resource = c.resource(HOST+"/test"); Gson gson = new Gson(); Test test = new Test(); test.setTestName("TEST AUTOMATION"); resource.header("Content-Type

这样做的明显原因是没有提供适当的内容类型。但我在提供。我仍然得到不支持的媒体类型。不知道为什么。非常感谢您的帮助

Client c = Client.create();
WebResource resource = c.resource(HOST+"/test");

Gson gson = new Gson();
Test test = new Test();
test.setTestName("TEST AUTOMATION");

resource.header("Content-Type", "Application/json");

String testStr = gson.toJson(test);
System.out.println("Request Str: "+testStr);
ClientResponse response = resource.post(ClientResponse.class, testStr);
System.out.println("POST response : "+response);
POST response : POST http://host:8888/test returned a response status of 415 Unsupported `enter code here`Media Type

我就是这样解决的。真奇怪。直到我把下面的陈述结合起来,它才起作用。根据我编写的上述程序,将header语句和post语句组合在一起,如下所示。另外,不要忘记输入charset=UTF-8

ClientResponse response = resource.header("Content-Type",
            "application/json;charset=UTF-8").post(ClientResponse.class,
            testStr);

您的服务器可以处理json内容吗?您已经告诉请求内容类型是什么,但是您在服务器上的方法是否说明它支持什么类型?他们必须匹配。我希望服务器端方法具有类似于
@Consumes(MediaType.APPLICATION\u JSON)
的注释。我的服务器可以处理JSON内容。上面的system.out.println打印以下请求Str:{“testName”:“testautomation”}。我使用了与DevHTTPClient相同的请求。它是一个rest客户端到rest的RESTFul服务。因为我有内容类型:application/json。没有这一点,我会得到相同的415不支持的媒体类型错误。如果我把它放进去,我可以得到200。我甚至用Android客户端应用程序进行了测试。成功了。我不知道上面的代码有什么问题。