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中的请求序列化类:

  1. AFHTTPRequestSerializer
  2. 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 如何处理.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容