【问题标题】:Extracting data from a POST request in Java从 Java 中的 POST 请求中提取数据
【发布时间】:2017-06-28 11:03:13
【问题描述】:

当我对 API 端点执行 CURL 请求时,我发现在解析请求时,我发送的 JSON 被放置在请求 > 委托 > 正文中,而不是我在 @987654323 中所期望的位置@

这是出乎意料的,结果是下面的代码在数据库中创建了一个空值记录。

我需要修改 curl 请求吗?或者以其他方式提取数据?

CURL 请求:

curl -H "Content-Type: application/json" -X POST -d '{"name":"christian"}' http://127.0.0.1:4567/suppliers

POST 代码

    post("/suppliers",
            (request, response) -> {

                response.type("application/json");
                Supplier supplier = new Gson().fromJson(request.body(),
                        Supplier.class);

                SupplierCrud sc = new SupplierCrud();
                sc.createSupplier(supplier);

                return new Gson().toJson(new StandardSupplierResponse(
                        StatusResponse.SUCCESS,new Gson().toJsonTree(supplier)));
            });

【问题讨论】:

  • 您提供的代码有何相关性?它不返回适当的 JSON 吗?如果您使用的是方法,为什么要关心变量的内容是什么?该方法是否返回正确的值?
  • @RealSkeptic 代码是相关的,因为我们可以看到 json 被传递到端点,但关键不是在 body 下,这是我(认为)我可以用 @ 询问的唯一地方987654327@。该方法永远不会保存传递给 POST 的值,因为它没有被检索到。

标签: java curl post


【解决方案1】:

笨蛋。我发现我用大写变量创建了我的Supplier.java 对象。

@Expose private String Type; @Expose private int Id; @Expose private String Name;

我将其修改为全部小写。随后一切正常...

@Expose private String type; @Expose private int id; @Expose private String name;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 2020-04-06
    • 1970-01-01
    相关资源
    最近更新 更多