我一直在尝试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方法。