我一直在尝试jersey客户端从另一个Web服务中使用我的jax-rs Web服务,并且每当我从邮递员发送发帖请求时,我都收到此400错误的请求错误。我已将jersey客户端配置为使用我已使用Gson实现自己的消息正文阅读器和编写器。这是调用另一个Web服务的代码

 ClientConfig config = new ClientConfig();
         config.register(GsonWriter.class);
            config.register(GsonReader.class);

        Client client = ClientBuilder.newClient(config);
        WebTarget webTarget = client.target("http://localhost:8080/MessageBucket/MsgBucket/Api/bucket/msg");
        //WebTarget msgserviceWebTarget = webTarget.path("bucket/msg");
        System.out.println(webTarget.getUri());
        Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON);
        Response response = invocationBuilder.post(Entity.entity(msg, MediaType.APPLICATION_JSON));
        String bresponse = response.readEntity(String.class);
        System.out.println("after request");

        return bresponse;


我将msg对象作为参数传递给其他Web服务的resource方法。

我得到的错误是:客户端发送的请求在语法上不正确。

最佳答案

原来我有httpHeaders.get(“ Content-Type”)。add(“ charset = UTF-8”);我的gson提供者行中的一行writeTo方法。

10-08 13:26