AFHTTPRequestSerializer類說明


繼承:NSObject


遵照:AFURLRequestSerialization


聲明處:AFURLRequestSerialization.h


概述

AFHTTPRequestSerializer符合AFURLRequestSerialization和AFURLResponseSerialization協議,提供一個查詢字符串/URL表單參數序列和默認請求報頭,響應狀態碼和內容類型驗證的基礎實現。
處理HTTP的任意請求和響應,建議使用AFHTTPRequestSerializer的子類來確保統一的默認行為。

任務

其他方法

屬性
stringEncoding
allowsCellularAccess
cachePolicy
HTTPShouldHandleCookies
HTTPShouldUsePipelining
networkServiceType
timeoutInterval

配置HTTP請求報頭

屬性
HTTPRequestHeaders
方法
+ serializer
– setValue:forHTTPHeaderField:
– valueForHTTPHeaderField:
– setAuthorizationHeaderFieldWithUsername:password:
– clearAuthorizationHeader

配置查詢字符串參數序列化

屬性
HTTPMethodsEncodingParametersInURI
方法
– setQueryStringSerializationWithStyle:
– setQueryStringSerializationWithBlock:

創建請求對象

方法
– requestWithMethod:URLString:parameters:error:
– multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:
– requestWithMultipartFormRequest:writingStreamContentsToFile:completionHandler:

屬性

HTTPMethodsEncodingParametersInURI

@property (nonatomic, strong) NSSet<NSString*> *HTTPMethodsEncodingParametersInURI

討論

序列化請求的HTTP方法,將編碼參數為一個查詢字符串。默認設置為GET,HEAD和DELETE。

聲明處

AFURLRequestSerialization.h

HTTPRequestHeaders

@property (readonly, nonatomic, strong) NSDictionary<NSString*NSString*> *HTTPRequestHeaders

討論

默認HTTP報頭字段值用于序列化請求。默認,包含如下

  • Accept-Language 是NSLocale +preferredLanguages的內容
  • User-Agent 是各種標識符和操作系統名稱的內容
    添加和刪除默認請求報頭,使用setValue:forHTTPHeaderField:。

聲明處

AFURLRequestSerialization.h

HTTPShouldHandleCookies

@property (nonatomic, assign) BOOL HTTPShouldHandleCookies

討論

創建請求是否使用默認的cookie處理。 默認為YES。

參見

NSMutableURLRequest @property HTTPShouldHandleCookies

聲明處

AFURLRequestSerialization.h

HTTPShouldUsePipelining

@property (nonatomic, assign) BOOL HTTPShouldUsePipelining

討論

在早期的傳送器中接受到響應數據之前,設置是否可以創建請求進行傳送數據。默認值為NO。

參見

NSMutableURLRequest @property HTTPShouldUsePipelining

聲明處

AFURLRequestSerialization.h

allowsCellularAccess

@property (nonatomic, assign) BOOL allowsCellularAccess

討論

是否允許時候用設備的移動網絡進行創建請求(如果有的話)。默認值為YES。

同見

NSMutableURLRequest

@property allowsCellularAccess

聲明處

AFURLRequestSerialization.h

cachePolicy

@property (nonatomic, assign) NSURLRequestCachePolicy cachePolicy

討論

創建請求的緩存機制。默認為NSURLRequestUseProtocolCachePolicy。

同見

NSMutableURLRequest
@property cachePolicy

聲明處

AFURLRequestSerialization.h

networkServiceType

討論

創建請求的網絡服務類型。默認值為NSURLNetworkServiceTypeDefault。

同見

NSMutableURLRequest @property networkServiceType

聲明處

AFURLRequestSerialization.h

stringEncoding

討論

用于序列化參數的字符串編碼類型。默認值為NSUTF8StringEncoding。

聲明處

AFURLRequestSerialization.h

timeoutInterval

討論

創建請求的超時時間,單位秒。默認的超時時間為60秒。

同見

NSMutableURLRequest @property timeoutInterval

聲明處

AFURLRequestSerialization.h

類方法

serializer

+ (instancetype)serializer

討論

根據默認配置創建和返回一個序列化實例。

聲明處

AFURLRequestSerialization.h

實例方法

clearAuthorizationHeader

- (void)clearAuthorizationHeader

討論

清除所有存在的HTTP頭Authorization的值。

聲明處

AFURLRequestSerialization.h

multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:

- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method URLString:(NSString *)URLString parameters:(nullable NSDictionary<NSString*,id> *)parameters constructingBodyWithBlock:(nullable void ( ^ ) ( id<AFMultipartFormData> formData ))block error:(NSError *_Nullable __autoreleasing *)error

討論

通過詳細的HTTP方法和URL字符串創建一個NSMutableURLRequest對象。使用詳細的參數和多部分表單塊來設計一個多部分/表單數據的HTTP內容。詳見http://www.w3.org/TR/html4/interact/forms.html.

在一個HTTP內容中,多部分表單請求是自動從硬盤或內容中讀取文件。作為結果的NSMutableURLRequest對象有一個HTTPBodyStream屬性,所以在這個請求對象中避免設置HTTPBodyStream或HTTPBody,同時清除內容流中清除多部分數據。

參數

method

請求的HTTP方法。這個參數不能為GET,或HEAD,或nil。

URLString

用于創建請求URL的URL字符串。

parameters

參數被編碼和設置到請求的HTTP內容。

block

一個在HTTP內容中添加一個遵循AFMultipartFormData協議的對象的參數并添加數據的塊。

error

構造請求時發生的錯誤。

返回值

一個NSMutableURlRequest對象。

聲明處

AFURLRequestSerialization.h

requestWithMethod:URLString:parameters:error:

- (NSMutableURLRequest *)requestWithMethod:(NSString *)method URLString:(NSString *)URLString parameters:(nullable id)parameters error:(NSError *_Nullable __autoreleasing *)error

討論

使用HTTP方法和URL字符串創建一個NSMutableURLRequest對象。

參數

method

HTTP請求方法,如GET,POST,PUT,或DELETE。這個參數不能為nil。

URLString

用于創建請求URL的URL字符串。

parameters

GET請求時,參數設置為一個查詢字符串。POST請求時,參數設置為HTTP內容。

error

構建請求時發生的錯誤。

返回值

一個NSMutableURLRequest對象。

聲明處

AFURLRequestSerialization.h

requestWithMultipartFormRequest:writingStreamContentsToFile:completionHandler:

- (NSMutableURLRequest *)requestWithMultipartFormRequest:(NSURLRequest *)request writingStreamContentsToFile:(NSURL *)fileURL completionHandler:(nullable void ( ^ ) ( NSError *_Nullable error ))handler

討論

創建一個NSMutableURLRequest,通過從請求移動HTTPBodyStream并異步將內容寫到指定的域,在創建完成后調用完成句柄。
在NSURLSessionTask有一個BUG,當流內容是來之HTTP體,會導致請求不會發送Content-Length頭, 當與亞馬遜S3服務器通訊時有一個明顯的問題。作為一個工作區,這個方法根據multipartFormRequestWithMethod:URLString:parameters:constructingBodyWithBlock:error:構建請求,或任意其他根據HTTPBodyStream創建的請求,寫內容到指定的域,返回一個將HTTPBodyStream屬性設置為nil的原請求的拷貝。由此,那個域也能傳到AFURlSeesionManager - uploadTaskWithRequest:fromFile:progress:completionHandler:, 或擁有將請求中的HTTPBbody屬性讀到一個NSData中的內容。

參數

request

多部分表單請求。請求的HTTPBodyStream屬性必須不能設置為nil。

fileURL

用于寫多部分表單內容的文件URL。

handle

一個用于執行的句柄塊。

同見

https://github.com/AFNetworking/AFNetworking/issues/1398

聲明處

AFURLRequestSerialization.h

setAuthorizationHeaderFieldWithUsername:password:

- (void)setAuthorizationHeaderFieldWithUsername:(NSString *)username password:(NSString *)password

討論

對用戶名和密碼進行Base64編碼后作為一個基礎的驗證值,設置在HTTP端創建的請求對象中的HTTP頭“Authorization”域中。會重寫已經存在的Authorization域。

參數

username

HTTP基礎驗證的用戶名。

password

HTTP基礎驗證的密碼。

聲明處

AFURLRequestSerialization.h

setQueryStringSerializationWithBlock:

- (void)setQueryStringSerializationWithBlock:(nullable NSString *( ^ ) ( NSURLRequest *request , id parameters , NSError *__autoreleasing *error ))block

討論

設置一個自定義方法根據指定的塊來詢問字符串序列。

參數

block

定義一個編碼參數的過程到一個詢問字符串之中的塊。這個塊返回詢問字符串并有三個參數:請求,用于編碼的參數,嘗試為提供的請求編碼參數發生的錯誤。

聲明處

AFURLRequestSerialization.h

setQueryStringSerializationWithStyle:

- (void)setQueryStringSerializationWithStyle:(AFHTTPRequestQueryStringSerializationStyle)style

討論

依據預定義的類型中的一個類型,設置詢問字符串序列化的方法。

參數

style

序列化類型。

同見

AFHTTPRequestQueryStringSerializationStyle

聲明處

AFURLRequestSerialization.h

setValue:forHTTPHeaderField:

- (void)setValue:(nullable NSString *)value forHTTPHeaderField:(NSString *)field

討論

HTTP端創建的請求對象中,設置HTTP頭的值。如果設置的值為nil,則如果存在已經同樣的HTTP頭就移除。

參數

value

為指定的頭設置默認值,或設置為nil。

field

用來設置值的HTTP頭。

聲明處

AFURLRequestSerialization.h

valueForHTTPHeaderField:

- (nullable NSString *)valueForHTTPHeaderField:(NSString *)field

討論

返回設置在請求序列化中的HTTP頭的值。

參數

field

用來恢復默認值的HTTP頭。

返回值

為指定HTTP頭設置為默認值的值,可能為nil。

聲明處

AFURLRequestSerialization.h

// END 這個真夠長了,翻譯了很久。!_!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容