2016-04-08 3 views
0

Я пытаюсь сделать вызов 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.

ответ

0

Вы пытаетесь отправить полезную информацию JSON, но сервер отклоняет запрос со статусом 415, который указывает, что тип носителя запроса вызывает проблемы.

Прежде всего, необходимо определить, что метод запроса принимает JSON полезной нагрузку

@RequestMapping(..., headers="Accept=application/json") 

и запрос стельки должен включать заголовок

Content-Type: application/json 
+0

Я попытался это раньше, и это бросает, 400 Bad Requst, «Запрос, отправленный клиентом, был синтаксически неправильным». – varsh

+1

@varsh Причина 400 заключается в том, что JSON не может быть проанализирован в объект BasicPlanContext. У вас есть следы ошибок в журнале сервера? – wero

+0

Я не вижу никаких журналов на консоли сервера, кроме SLF4J: Не удалось загрузить класс «org.slf4j.impl.StaticLoggerBinder». – varsh

Смежные вопросы