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阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容