继承:NSObject
声明处: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 这个真够长了,翻译了很久。!_!
网友评论