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 *HTTPMethodsEncodingParametersInURI

讨论

序列化请求的HTTP方法,将编码参数为一个查询字符串。默认设置为GET,HEAD和DELETE。

声明处

AFURLRequestSerialization.h

HTTPRequestHeaders

@property (readonly, nonatomic, strong) NSDictionary *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 *)parameters constructingBodyWithBlock:(nullable void ( ^ ) ( id 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 这个真够长了,翻译了很久。!_!

你可能感兴趣的:(AFHTTPRequestSerializer类说明)