第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

POST 請求期間出現(xiàn)錯誤 400(錯誤請求)

POST 請求期間出現(xiàn)錯誤 400(錯誤請求)

BIG陽 2022-07-06 19:11:22
我正在嘗試從我的反應應用程序向我的服務器發(fā)送POST請求,但是我不斷收到狀態(tài) 400 Bad Request錯誤。例外是:“org.springframework.http.converter.HttpMessageNotReadableException”。錯誤信息是:“JSON 解析錯誤:無法從 START_ARRAY 令牌中反序列化 java.util.LinkedHashMap 的實例;嵌套異常是 com.fasterxml.jackson.databind.JsonMappingException:無法從 START_ARRAY 令牌中反序列化 java.util.LinkedHashMap 的實例\n [來源:java.io.PushbackInputStream@6a188b06;行:1,列:1]"我嘗試使用POSTMAN測試 API,但仍然遇到同樣的錯誤。@PostMapping("/cart")public Cart create(@RequestBody CartRequest cartRequest){  return cartRepository.save(new Cart(0,cartRequest.getProductname()));}我的模特課是public class CartRequest {String productname;public CartRequest(int productid, String productname) {    this.productname = productname;}public String getProductname() {    return productname;}public void setProductname(String productname) {    this.productname = productname;}@Overridepublic String toString() {    return "CartRequest{" +            ", productname='" + productname + '\'' +            '}';}}存儲庫類如下public interface CartRespository extends JpaRepository<Cart, Integer> {    }請求代碼如下import React, { Component } from "react";import axios from 'axios';import NavBar from "./navbar";export default class Products extends Component {state = {    isLoading: true,    groups: [],};constructor(props){    super(props);    {         this.add = this.add.bind(this);    }}add(id, name) {    axios({    method: 'post',    url: '/api/cart',    body: {      productid: id,      productname: name    }  });}async componentDidMount() {    const response = await fetch('api/product');    const body = await response.json();    this.setState({ groups: body, isLoading: false });}發(fā)送請求的Button如下{this.state.groups.map(group => <button key={group.id} onClick={() => this.add(group.productid, group.name)} className="flex-c-m size1 bg4 bo-rad-23 hov1 s-text1 trans-0-4">Add to Cart</button>)}我正在嘗試執(zhí)行的是從產(chǎn)品中接收信息并將其添加到購物車中。已使用GET請求接收到產(chǎn)品信息。
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻1836條經(jīng)驗 獲得超5個贊

使您的控制器的方法如下所示:


@PostMapping("/cart")

public Cart create(@RequestBody Map<Integer, Integer> body){

    int productid = body.get("productid");

    String productname=body.get("productname");


    return cartRepository.save(new Cart(productid, productname));

}

順便說一句,您可以將 json 作為模型而不是 Map 接收。你最好創(chuàng)建一個新的模型類 - CartRequest 現(xiàn)在只有一個字段 -productname并在控制器中接受 taht 模型


@PostMapping("/cart")

public Cart create(@RequestBody CartRequest cartRequest){ 

  return cartRepository.save(new Cart(0, cartRequest.getProductname()));

}

如您所見,我并沒有說要productid在模型中包含字段。這是因為你的實體在被 ORM 保存時必須沒有 id(例如休眠)


查看完整回答
反對 回復 2022-07-06
  • 1 回答
  • 0 關注
  • 734 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號