当前位置:首页 > JAVA > 正文内容

springboot请求接口400错误的排查

高老师2年前 (2024-02-20)JAVA666

今天在新增1个接口的时候请求接口一直400,无任何错误信息,接口代码如下:

@SaveLog(name = "同步商品档案")
@ApiOperation(value = "同步商品档案", notes = "同步商品档案")
@PostMapping(value = "/sync", produces = "application/json;charset=UTF-8")
public void sync(@RequestBody StyleBillsRequest req) throws IOException {
    iRetailDataService.sync(req);
}

经过同事的指点可能是请求参数json和实体对象有差异,结构可能不正确,我检查半天无果,于是先通过json接收再转换为实体对象。更换代码如下:

@SaveLog(name = "同步商品档案")
@ApiOperation(value = "同步商品档案", notes = "同步商品档案")
@PostMapping(value = "/sync", produces = "application/json;charset=UTF-8")
public void sync(@RequestBody JSONObject data) throws IOException {
    // 转换Json实体对象
    StyleBillsRequest req = JsonUtil.JsonToBean(JsonUtil.toJSONString(data), StyleBillsRequest.class);

    // 同步商品档案信息
    iRetailDataService.sync(req);
}

这样修改代码后会报错部分字段的值无法转换,很清晰的了解到json结构中哪些字段有问题,方便修改。

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/723.html

分享给朋友:

“springboot请求接口400错误的排查” 的相关文章

Java不用编译直接执行

Java不用编译直接执行

public class test {     public static void main(String[] args) {     &...

java限制1个方法同一时间只能被一个线程访问

java限制1个方法同一时间只能被一个线程访问

java限制1个方法同一时间只能被一个线程访问public synchronized void setOrderPay(){ }加上synchronized 修饰符即可...

java日期和时间

java日期和时间

(1).java获取当前日期时间Date date = new Date();  System.out.println(date.toString());输出Fri Jul 02 10:29:55 CST 2021(2).java获取时间戳秒/毫秒D...

java lookingAt匹配字符串和java matches匹配字符串,java正则replaceAll,java正则replaceFirst

java lookingAt匹配字符串和java matches匹配字符串,java正则replaceAll,java正则replaceFirst

(4).java lookingAt匹配字符串和java matches匹配字符串lookingAt不要求整个字符串全匹配,例如me和me_you都是匹配的,但是lookingAt从第一个字符串开始匹配,匹配失败了也不会继续匹配,意味着me和you_me是无法匹配的matches匹配字符串要求全部匹...

java命令行传参,java从命令行接收参数

java命令行传参,java从命令行接收参数

java命令行传参,java从命令行接收参数public static void main(String[] args) {     for (int i = 0;&nb...

java析构函数,java finalize()

java析构函数,java finalize()

java析构函数finalize()java进行垃圾回收时会调用finalize(),用户可以用它来关闭已经打开的资源句柄等操作,具体场景比较多。和php的析构函数__destruct差不多但是这个方法在最新版本的java中提示已经废弃了,好像java9中干掉了它...