Spring の RestTemplate を使用して POST で配列を渡すのが困難です。以下は、私が使用している私のコードです:
ここで RestTemplate を呼び出しています。
private static void sendEntries() {
RestTemplate restTemplate = new RestTemplate();
String uri = "http://localhost:8080/api/log/list.json";
// Both LogEntry and ExceptionEntry extend Entry
LogEntry entry1 = new LogEntry();
ExceptionException entry2 = new ExceptionEntry();
Entry[] entries = {entry1, entry2};
entries = restTemplate.postForObject(uri, entries, Entry[].class);
System.out.println(new Gson().toJson(entries));
}
また、コントローラーには以下が含まれます。
@RequestMapping(value = "api/log/list", method = RequestMethod.POST)
public @ResponseBody Entry[] saveList(@RequestBody Entry[] entries) {
for (Entry entry : entries) {
entry = save(entry);
}
return entries;
}
これにより、次のようになります。
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
配列がリクエストに追加されているようには見えません。配列を渡そうとしていないときは、他のすべての POST リクエストが機能します。配列を適切に渡すために何をする必要があるのか わかりません。
これは適切な方法ですか?代わりにコレクションを渡すことは可能ですか?