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

你可能感兴趣的:(AFN中的Content-Type与RESTFul简介)