我正在尝试将 json 对象发布到 .net Web 服务:
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
answer[] answers = restTemplate.postForObject(url, new Gson().toJson(request), answer[].class);
到目前为止,生成的 json 看起来不错:
{"request":1234}
但是当在 restTemplate 的帮助下发送到 Web 服务时,http 请求的内容有点混乱:
"{\"request\":1234}"
并且服务以错误代码 400 bad request 响应
编辑:发现问题
问题是我对对象进行了两次编码。RestTemplate 已经将对象编码为 json。
工作代码是:
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
answer[] answers = restTemplate.postForObject(url, request, answer[].class);