前言
之前的文章我們編寫了一個接口. 并且可以使用接口文檔請求次接口并且提交時可以帶上參數. 在寫出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
AFJSONRequestSerializer
- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
withParameters:(id)parameters
error:(NSError *__autoreleasing *)error
文件上傳AFStreamingMultipartFormData
這個接口是表單提交就用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 如何處理.