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 で応答します
編集:問題が見つかりました
問題は、オブジェクトを 2 回エンコードしたことです。RestTemplate は既にオブジェクトを json にエンコードしています。
作業コードは次のとおりです。
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
answer[] answers = restTemplate.postForObject(url, request, answer[].class);