2017-06-28 46 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;