我正在從 Angular 向我的 restcontroller 發送一個本地日期時間和一個數字。無論我做什么,這是我唯一出錯的地方。我記錄了變數值,以防它們的格式錯誤。localdatetime 采用 yyyy-MM-ddThh:mm 格式。我的角度方法呼叫:
updateDogFeeding(dogid,data)
{
return this.http.post(environment.rooturl "/api/profile/animals/feeddog",{dogid,data},{observe:'response', withCredentials:true,
headers: new HttpHeaders({'Content-Type':'application/json'})})
}
我嘗試在 HttpParams 中發送陣列中的引數或使用 JSON.stringify() 的元素陣列,但沒有任何效果。我檢查了春天的錯誤資訊,得到了這個:
無法決議公共 com.example.vizsga_kedvenc_felugyelo.model.Dog com.example.vizsga_kedvenc_felugyelo.controll.DogController.feedDog(java.lang.Integer,java.time.LocalDateTime) 中的引數 [0]:JSON 決議錯誤:無法反序列化值java.lang.Integer來自 Object 值(令牌)的型別JsonToken.START_OBJECT;嵌套例外是 com.fasterxml.jackson.databind.exc.MismatchedInputException:無法從[Source: (org.springframework.util.StreamUtils$NonClosingInputStream) 處java.lang.Integer的物件值 (token ) 反序列化型別值;JsonToken.START_OBJECT行:1,列:1]
可能的原因是什么?
我的休息控制器:
@PostMapping(value = "api/profile/animals/feeddog")
public Dog feedDog(@RequestBody Integer dogID, @RequestBody LocalDateTime timestamp)
{
System.out.println("Got called"); //Isn't printed on the console
return dogService.feedDog(dogID,timestamp);
}
uj5u.com熱心網友回復:
您正在使用兩個回應正文。應該是一個。
當您從 Angular 發送請求時,該請求正在創建一個帶有 JSON 的主體,如下所示:
{
"dogid": X,
"data": Y
}
這是一個物件,但只有一個。所以你的控制器方法應該有一個物件作為請求體的引數,具有相同的結構。
編輯:您還可以使用 Map<> 型別的物件來保存值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/446757.html
