【问题标题】:Request Body Missing in Spring while updating using PATCH API in react js在 React js 中使用 PATCH API 更新时,Spring 中的请求正文丢失
【发布时间】:2021-08-26 07:17:17
【问题描述】:

Spring 展示 - 已解决 [org.springframework.http.converter.HttpMessageNotReadableException:缺少所需的请求正文:public com.cg.bookstore.entities.OrderDetails com.cg.bookstore.controller.OrderDetailsController.updateDeliveryStatus(int ,java.lang.String)]

控制台显示 - 未捕获(承诺中)错误:请求失败,状态码为 400

class UpdateOrder extends Component {

state = {
        deliveryStatus:""
 }

handleChange = (event) => {
    const deliveryStatus = { ...this.state.deliveryStatus };
    this.setState({ deliveryStatus: event.target.value });
  };

  handleSubmit = (event) => {
    // Prevents default behaviour of submit button
    event.preventDefault();
    console.log(this.state.deliveryStatus)
    console.log()
  
    OrderService.updateDeliveryStatus(this.props.match.params.orderDetailsId,this.state.deliveryStatus)
    .then((res) => {
      this.props.history.push("/admin/orders");
    });
  };

在 OrderService 中我调用 updateDeliveryStatus

async updateDeliveryStatus(orderId,deliveryStatus){
    return await axios.patch(BASE_URL+"/"+orderId,deliveryStatus)
    
}

spring 中的 updateDeliveryStatus 服务

@Override
public OrderDetails updateDeliveryStatus(int orderId, String deliveryStatus)
{
    Optional<OrderDetails> opt = orderDetailsRepo.findById(orderId);
    OrderDetails od;
    if (opt.isPresent())
    {
        od = opt.get();
        od.setDeliveryStatus(deliveryStatus);
        orderDetailsRepo.save(od);
    } else
    {
    
        throw new OrderDetailsNotFoundException("Order is not found");
    }
    return od;
}

当我在 POSTMAN 中测试后端时,我将输入作为纯字符串传递,它工作正常。是不是因为输入不是json形式的问题?如何解决这个问题?

【问题讨论】:

    标签: javascript java reactjs spring-boot


    【解决方案1】:

    通常,当使用 @PutMethod 并想要更新资源时,您需要提供要更新的资源的 ID 和新的主体,在这种情况下,我认为是“OrderDetails”,错误提示那里缺少。
    如果没有 java 控制器代码,这只是假设。

    【讨论】:

    • 请使用您的评论权限询问详情。
    猜你喜欢
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 1970-01-01
    • 2018-06-26
    相关资源
    最近更新 更多