我一直在尝试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;
我正在将味精对象作为参数传递给其他Web服务的资源方法。
我得到的错误是:客户端发送的请求在语法上不正确。
答案 0 :(得分:1)
原来我有httpHeaders.get(“ Content-Type”)。add(“ charset = UTF-8”);在我的gson提供程序的writeTo方法中添加了一行代码。一旦我将其注释掉,代码便像一个魅力。