2016-04-10 5 views
1

Невозможно отправить массив идентификаторов строк в контроллер Spring mvc, используя завиток, когда он метает 400.Post Array of String в качестве тела запроса с использованием завитка весной MVC

Контроллер Метод:

@RequestMapping(value="/evidencesbyIds",method = RequestMethod.POST) 
@ResponseBody 
public Map<String, Object> getEvidenceByIds(@RequestBody String[] ids){ 
// body here 
} 

CURL Команда:

curl -H "Content-type: application/json" -X POST -d '{"ids":["1","2"]}' http://localhost:8080/vt/evidencesbyIds 

curl -H "Content-type: application/json" -X POST -d "{"ids":["1","2"]}" http://localhost:8080/vt/evidencesbyIds 

curl -H "Content-type: application/json" -X POST -d "{"ids":[\"1\",\"2\"]}" http://localhost:8080/vt/evidencesbyIds 

curl -H "Content-type: application/json" -X POST -d "{\"ids\":[\"1\",\"2\"]}" http://localhost:8080/vt/evidencesbyIds 

Я пытался несколько раз, чтобы выполнить свертывание команды, но они бросают статус 400 и исключение в качестве

"Can not deserialize instance of java.lang.String[] out of START_OBJECT token\n at" 

ответ

0

Got решение:

команда CURL, чтобы разместить массив строк в теле запроса:

локон -H "Content-тип:/JSON" -X POST -d "[" 1" , "2"]»http://localhost:8080/vt/evidencesbyIds

Примечание:
1. Нет модификации в методе контроллера
2. То же самое можно использовать, если контроллер принимает List of String ids в качестве тела запроса.