接口报错:Could not find acceptable representation

在使用SpringMVC的接口中,当返回对象为自定义的通用工具类RestResponse时,由于缺少get()和set()方法,导致了HttpMediaTypeNotAcceptableException异常。解决方案是为RestResponse类的code、msg和data属性添加getter和setter方法。
摘要由CSDN通过智能技术生成

报错

问题:接口中使用通用返回工具类作为返回对象时,报错:Could not find acceptable representation
在这里插入图片描述

22:10:55.562 [http-nio-14125-exec-2] ERROR c.l.f.w.e.GlobalExceptionHandler - [handleException,75] - 请求地址'/client/anonymous/login',发生系统异常.
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
	at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:315)

代码

  • controller 类
@RestController
@RequestMapping("/client")
public class ClientLoginController {

    /**
     * 登录方法
     * @param loginBody 登录信息
     * @return 结果
     */
    @PostMapping("/anonymous/login")
    public RestResponse login(@Validated @RequestBody LoginBody loginBody, HttpServletRequest request) {
        //执行登录代码
		// ...
        return RestResponse.success("登录成功", null);
   }
   
}
  • 接口返回工具类
/**
 * 操作消息提醒
 *
 */
public class RestResponse<T> {
    private static final long serialVersionUID = 1L;

    /**
     * 状态码
     */
    private int code;

    /**
     * 提示内容
     */
    private String msg;

    /**
     * 数据对象
     */
    private T data;

    public RestResponse(int code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 返回成功消息
     *
     * @param msg  返回内容
     * @param data 数据对象
     * @return 成功消息
     */
    public static <T> RestResponse<T> success(String msg, T data) {
        return new RestResponse<>(200, msg, data);
    }

}

原因

通用返回工具类 RestResponse 中的 code msg data 属性没有 get()set()方法

解决

给通用返回工具类 RestResponse 中的 code msg data 属性添加 get()set()方法

package com.lvying.common.core.domain;

import com.lvying.common.constant.HttpStatus;

/**
 * 操作消息提醒
 *
 */
public class RestResponse<T> {
    private static final long serialVersionUID = 1L;

    /**
     * 状态码
     */
    private int code;

    /**
     * 提示内容
     */
    private String msg;

    /**
     * 数据对象
     */
    private T data;

    public RestResponse(int code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 返回成功消息
     *
     * @param msg  返回内容
     * @param data 数据对象
     * @return 成功消息
     */
    public static <T> RestResponse<T> success(String msg, T data) {
        return new RestResponse<>(HttpStatus.SUCCESS, msg, data);
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 报错"Could not find acceptable representation"通常是由于客户端请求的媒体类型不被服务器接受所引起的。根据您提供的代码,我可以看到您的接口代码中使用了@RequestParam注解来接收请求参数。在您的代码中,有两个方法使用了@RequestParam注解,一个是requestParm1方法,另一个是download方法。这两个方法分别接收了不同类型的参数。如果您在请求这两个接口时,没有正确设置请求头中的Content-Type或Accept字段,就有可能导致服务器无法找到可接受的表示形式,从而报错"Could not find acceptable representation"。 为了解决这个问题,您可以检查以下几点: 1. 确保在请求这两个接口时,设置了正确的Content-Type和Accept字段。根据您的代码,requestParm1方法接收的是一个整数类型的参数,而download方法接收的是字符串类型的参数。所以,对于requestParm1方法,您可以设置Content-Type为"application/x-www-form-urlencoded",对于download方法,您可以设置Content-Type为"application/json"或"application/octet-stream",具体根据您的需求而定。 2. 确保请求的参数与接口方法的参数类型匹配。比如,如果请求的参数是一个整数,那么对应的@RequestParam注解的参数类型也应该是整数。 3. 检查您的代码中是否有其他地方可能导致这个错误的原因,比如请求的路径不正确或者其他的业务逻辑问题。 希望以上信息对您有帮助。如果您有任何其他问题,请随时提问。 #### 引用[.reference_title] - *1* *2* [Could not find acceptable representation](https://blog.csdn.net/weixin_43888891/article/details/127348443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java下载文件时报Could not find acceptable representation](https://blog.csdn.net/qq_33722783/article/details/118787376)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值