【问题标题】:spring boot adding = after data in post methodspring boot添加=在post方法中的数据之后
【发布时间】:2020-02-28 00:17:28
【问题描述】:

我有 rest 服务、spring boot 应用程序和一个 POST 数据的方法,如下所示:

@PostMapping("/data")
    Datum newDatum(@RequestBody String data) {
        return repository.save(new Datum(data));
    }

我在终端中使用这个请求:

curl -X POST "Content-Type: application/json" -d "abc" http://localhost:8080/data

这返回给我:

{"dID":7,"data":"abc="}

每次多出一个=,就是这个错误,我该如何解决呢?

Datum类:

@Data
@Entity
public class Datum {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long datumID;
    private String data;
    public Datum(){}
}

不重写字符串方法。

它也让我卷曲:(3)端口号以“”错误结束,但数据仍然被保存

【问题讨论】:

  • 还包括代码Datum.java 类。我想知道toString()方法里面是什么/
  • 已添加,请查看@ruhul

标签: spring spring-boot spring-mvc post spring-data-jpa


【解决方案1】:

您的休息控制器返回 Datum 模型,该模型存在两个属性 datumId 或数据,或者您的模型中不存在参数化构造函数。那么如何在你的休息控制器中调用一个参数化的构造函数呢?接下来你的回复 ({"dID":7,"data":"abc="} ) 字段与您的返回基准模型属性不匹配。一旦请求出现在您的应用程序或其他中,请检查。

【讨论】:

    【解决方案2】:
    1. 在 cURL 中使用单引号
    2. 如果您想发送 application/json,请发送格式正确的 JSON。
    curl -X POST -H 'Content-Type: application/json' -d '{"data": "abc"}' http://localhost:8080/data
    

    【讨论】:

    • 这里是错误:curl:(6)无法解析主机:应用程序curl:(3)[globbing]第4列中的右括号/括号不匹配,我得到的回报:``` {“datumID”:97,“数据”:“%27%7Bdata%3A=”,“时间”:“2019-11-02T05:00:58.603+0000”}```
    【解决方案3】:

    试试这个:

    curl -X POST -H 'Content-Type: application/json' -d '{"data": "aaa"}' http://localhost:8080/data

    【讨论】:

    • 这里是错误:curl:(6)无法解析主机:应用程序curl:(3)[globbing]第4列中的右括号/括号不匹配,我得到的回报:``` {“datumID”:97,“数据”:“%27%7Bdata%3A=”,“时间”:“2019-11-02T05:00:58.603+0000”}```
    【解决方案4】:

    这个命令对我有用,在这里

    curl -X POST -H "Content-Type: application/json" -d "data_test" http://localhost:8080/data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-13
      • 2020-02-04
      • 1970-01-01
      • 2017-02-22
      • 2016-02-15
      • 2021-12-05
      • 2020-01-24
      • 1970-01-01
      相关资源
      最近更新 更多