Я пытаюсь сделать вызов POST с помощью скрипача к пружинной отдыха API,Spring POST Сбой HTTP 415 и 400
@RequestMapping(value = "/GetPlanByBasicContext/", method = RequestMethod.POST)
public @ResponseBody TravelPlan getPlanByBasicContext(@RequestBody BasicPlanContext b) {
return planService.getPlan(b));
}
Запрос на скрипача:
http://localhost:8080/now/travelPlan/GetPlanByBasicContext/
Заголовок:
User-Agent: Fiddler
Host: localhost:8080
Content-Length: 248
POST Полезная нагрузка:
{
"sourceLocation": "",
"destinationLocation": "",
"modeOfTransport": "car",
"travellers": {
"age1to16": 0,
"age17to30": 0,
"age31to50": 0,
"age50plus": 0
},
"dates": {
"startDate": "",
"endDate": ""
}
}
Атрибуты в полезной нагрузке такие же, как в классе BasicPlanContext, вместе с геттером и сеттер.
Я получаю следующее сообщение об ошибке:
415 Unsupported Media Type
The server refused this request because the request entity is in a format not supported
by the requested resource for the requested method.
Пробовал заменить @RequestBody с @ModelAttribute, который не помогло.
Также у меня есть следующие ЛИЭС:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.3</version>
</dependency>
EDIT 1: попытался добавить следующее к заголовку,
Content-Type: application/json
И следуя методу POST,
@RequestMapping(..., headers="Accept=application/json")
Это Результаты в 400 The request sent by the client was syntactically incorrect.
Я попытался это раньше, и это бросает, 400 Bad Requst, «Запрос, отправленный клиентом, был синтаксически неправильным». – varsh
@varsh Причина 400 заключается в том, что JSON не может быть проанализирован в объект BasicPlanContext. У вас есть следы ошибок в журнале сервера? – wero
Я не вижу никаких журналов на консоли сервера, кроме SLF4J: Не удалось загрузить класс «org.slf4j.impl.StaticLoggerBinder». – varsh