以下是开发Rest接口时遇到的一些问题。
HTTP信息转换
@ResponseBody 注解能够对客户端发过来的对象进行自动转换。
1 | "savejson",method = RequestMethod.POST,headers = "content-Type=application/json") (value = |
实现自动转换,必须满足以下两个条件:
- 请求的 Content-Type 头信息必须是 application/json;
- Jackson Json 库必须包含在应用程序的类路径下。
在接收客户端HTTP请求的消息时,如果客户端将请求的Json放到消息体中,那么服务端可以直接取实体,或者取相应的Json进行反序列化。2种方式都能够达到要求,一般是直接取实体,省去了反序列化的步骤,由框架进行反序列化。
发送Post请求
发送Post请求时,需要指定Content-Type和Accept请求头。
1 | curl -H "APPID:hlb11529c136998cb6" |
否则会提示415错误:
1 | { |
The Content-Type header is used by @RequestBody to determine what format the data being sent from the client in the request is. The accept header is used by @ResponseBody to determine what format to sent the data back to the client in the response. That’s why you need both headers.