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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容