AFN中的Content-Type与RESTFul简介
前言
之前的文章我们编写了一个接口. 并且可以使用接口文档请求次接口并且提交时可以带上参数. 在写出django 如何接收和解析参数之前, 需要先介绍一下HTTP提交的参数都有哪些组织形式(也可以叫参数序列化serializer), 其实就是Content-Type字段.
Content-Type 可以填写哪些内容.
常见的Content-Type内容
application/x-www-form-urlencoded
multipart/form-data
application/json
text-plain
AFNetworking中Content-Type字段
AFN中的请求序列化类:
- AFHTTPRequestSerializer
- AFJSONRequestSerializer
也可以叫做表单(form)提交和json提交.
AFHTTPRequestSerializer
请求序列化方法
- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
withParameters:(id)parameters
error:(NSError *__autoreleasing *)error
afnxwww.png
AFJSONRequestSerializer
- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
withParameters:(id)parameters
error:(NSError *__autoreleasing *)error
afnappjson.png
文件上传AFStreamingMultipartFormData
afnformdata.png这个接口是表单提交就用AFHTTPRequestSerializer, json提交就用AFJSONRequestSerializer,
GET POST PUT PATCH DELETE
AFN提供了上面的几种httpmethod,
head先不管.
一般所谓RESTFul风格, 从客户端角度可以这样理解.
get获取资源
post新建资源
put更新资源(提交所有字段,空字段服务端也会置为空, 也就是所有字段必填)
patch更新资源(提交部分字段, 空字段服务器忽略它, 也就是提交选填项.)
delete删除资源
例如对一个user接口.(user表有username, password两个字段) /api/user/
get /api/user/1/ 就是请求id为1的用户信息
post /api/user/ (参数在body中username="aa"&password="123456")就是新增user
put /api/user/ (username="abc") 更新user,此时username=="abc",由于password字段为空, 此时服务器数据库中password==null
patch /api/user/ (username="abc") 更新部分字段此时username=="abc",password=="123456"
delete /api/user/1/ 删除id==1的用户.
下一篇详细介绍django 服务端, 对不同的参数序列化方式以及不同的httpmethod 如何处理.