Я пытаюсь отправить запрос на публикацию в простом веб-приложении Spring MVC и использую RequestBody
в своем контроллере для преобразования JSON в объект Java, но по какой-то причине я продолжаю получать HTTP Status 415 – Unsupported Media Type
.Я потратил много времени, пытаясь найти решение этой проблемы, но, похоже, ничего не работает.
Метод get в моем контроллере работает нормально.Это мой оригинальный код
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping(value = "/users", method = RequestMethod.POST)
public class MyControllerAgain {
@RequestMapping(method = RequestMethod.POST, consumes = "application/json")
public void handleJson(@RequestBody Contact c) {
System.out.println(c);
}
@RequestMapping(method = RequestMethod.GET, consumes = "application/json")
public void handleGet() {
System.out.println("a");
}
}
Это мой Contact
public class Contact {
int id;
public String name;
public int number;
public Contact(){}
// Getters and setters
}
Я отправляю запрос с почтальоном, и вот как это выглядит
POST /users HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Accept: application/json
Cache-Control: no-cache
Postman-Token: 511c9e03-4178-380d-58f8-db24a3245b9e
{
"id":1,
"name":"something",
"number":1
}
Я также пытался включить зависимости Джексона в мой pom.xml
.Я попытался изменить значение потребления в аннотации @RequestMapping
, и я попробовал все комбинации заголовков принять и тип содержимого в моем запросе.
Кроме того, если я использую @ModelAttribute
вместо @RequestBody
, то все работает нормально, за исключением того, что все поля в классе Contact
имеют значение null.
Вот ссылка на github - https://github.com/Sanil2108/test_springmvc