2017-06-28 2 views
-1

APIエンドポイントへのCURLリクエストを実行すると、リクエストを解析する際にJSONがリクエスト>デリゲート> body内に配置されていることがわかります私が期待しているところrequest.body()JavaでのPOSTリクエストからのデータの抽出

これは予期せぬ結果で、結果として以下のコードがデータベースにnull値でレコードを作成してしまいます。

カールリクエストを変更する必要がありますか?または、他の方法でデータを抽出しますか?

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;

関連する問題