【发布时间】:2019-10-24 05:45:52
【问题描述】:
我正在尝试模拟this you tube 视频中使用的环境。在这里,他使用this 作为后端来存储和检索来自角度前端的数据。
我想使用 Spring Boot 作为我的支持者做同样的事情,并从前端 (Angular) 进行休息调用。
我已成功获取 GET 请求输出。但无法处理 PUT 请求。
我想向服务器发送一个 JSON 对象,服务器应该使用它来执行一些操作。
客户端
我放置 JSON 对象的 Angular 代码如下所示:
服务
updateTodo(todo:Todo):Observable<boolean>{
return this.http.put<boolean>('http://localhost:8080/udateJsonData',todo,httpOptions);
}
我的 todo 变量的类定义在上面的 put 请求中是:
型号
export class Todo{
id:number;
title:string;
completed:boolean;
}
HttpOptions
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
}
后端
并且在服务器端的 spring boot 中。我有一个休息调用映射方法,如下所示:
请求体(模型)
@XmlRootElement
public class RequestBody {
@JsonProperty int id;
@JsonProperty String title;
@JsonProperty boolean completed;
}
控制器
@RequestMapping(value = "/udateJsonData", method = RequestMethod.PUT)
@Consumes(MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody boolean udateJsonData(RequestBody requestBody) {
System.out.println(requestBody.title);
return false;
}
问题是我将系统输出设置为 null。
我尝试调试,发现我的 requestBody 本身为空。
任何帮助将不胜感激。 谢谢。
【问题讨论】:
标签: angular rest spring-boot http put