Ошибка Spring Boot Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

152
25 февраля 2019, 02:30

в общем я пытаюсь получить данные с textaria в формате json отправить их в бд

@RestController
public class RESTCustCtrl {
@Autowired
private CustomerRepo customerRepo;
@RequestMapping(value = "sendStmt", method = RequestMethod.POST)
public CustomerStatement custStmt(@RequestBody CustomerStatement customerStatement){
    customerRepo.save(customerStatement);
    return customerStatement;
}
}

получаю ошибку Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

если убираю аннотацию @RequestBody, а пишу

public @ResponceBody CustomerStatement custStmt(CustomerStatement customerStatement)

то получаю json со значениями полей 0 или non

@Entity
public class CustomerStatement {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private  long id;
private  String request;
private  float bid;
private Date due_date;
private  Boolean status = false;
public CustomerStatement(String request, float bid, Date due_date) {
    this.id = id;
    this.request = request;
    this.bid = bid;
    this.due_date = due_date;
    this.status = status;
}
public CustomerStatement(){}
public long getId() {
    return id;
}
public void setId(long id) {
    this.id = id;
}
public String getRequest() {
    return request;
}
public void setRequest(String request) {
    this.request = request;
}
public float getBid() {
    return bid;
}
public void setBid(float bid) {
    this.bid = bid;
}
public Date getDue_date() {
    return due_date;
}
public void setDue_date(Date due_date) {
    this.due_date = due_date;
}
public Boolean getStatus() {
    return status;
}
public void setStatus(Boolean status) {
    this.status = status;
}

}

Answer 1
@RestController
@RequestMapping(value = "/", produces = MediaType.APPLICATION_JSON_VALUE)
public class RESTCustCtrl {
    private final CustomerRepo customerRepo;
    @Autowired
    public RESTCustCtrl(CustomerRepo customerRepo) {
        this.customerRepo = customerRepo;
    }
    @PostMapping(value = "/sendStmt")
    public ResponseEntity<CustomerStatement> custStmt(@RequestBody CustomerStatement customerStatement){
        customerRepo.save(customerStatement);
        return ResponseEntity.ok().body(customerStatement);
    }
}

Проверим правильность в POSTMAN:

Как видим, запрос выполнен успешно.

Не забудьте добавить аннотацию @Table (name="имя таблицы") в вашем ентити

READ ALSO
Как добавить параметры в ссылку из листа?

Как добавить параметры в ссылку из листа?

Всем привет, работая с jsp наткнулся на такую проблему, мне надо зассетить в ссылку параметры из листа, чтобы при переходе по ней были отображены...

154
Dagger2 передать данные в модуль

Dagger2 передать данные в модуль

Изучаю Dagger2 и столкнулся с проблемойПытаюсь внедрить SimpleDateFormatter в RecyclerView

163
как выровнять карточки css

как выровнять карточки css

есть карточка а внутри нее разное количество контентаКак выровнять все карточки с разным контентом по высоте

180
Глубокое копирование js [дубликат]

Глубокое копирование js [дубликат]

На данный вопрос уже ответили:

359