2017-06-28 45 views
-1

当我对API端点执行CURL请求时,发现在解析请求时,我发送的JSON被放置在request> delegate> body内,而不是我期待在这里request.body()从Java中的POST请求中提取数据

这是意想不到的,因此结果与下面的代码在数据库中创建一个空值的记录。

我是否需要修改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))); 
      }); 

The location the data is stored

+0

怎样的代码,您提供的有关?它不会返回适当的JSON吗?如果你使用的是一种方法,你为什么关心变量的内容?该方法是否返回正确的值? – RealSkeptic

+0

@RealSkeptic代码是相关的,因为我们可以看到json传入端点,但最重要的是不在'body'下,这是我可以用request.body'查询的唯一地方。该方法从不保存传递到POST中的值,因为它不被检索。 – TheMightyLlama

回答

0

哑。我发现我使用大写变量创建了我的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;