针对不一样的网络请求,设置不一样的数据解析器
{
<1> AFN 能够自动对服务器返回的数据进行解析,默认将服务器返回的数据当作 JSON 数据解析.
必须按照服务器返回的数据格式,选择不一样的解析器.否则,就会报错,得不到想要的数据.
{
// 建立网络请求管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
// 1. 默认状况下,网络请求的管理者的解析器以下:
// 因为返回的是 JSON 数据,因此从服务器返回的数据:responseObject 的类型是 NSDictionary 或者 NSArray
mgr.responseSerializer = [AFJSONResponseSerializer serializer];
// 2. 若是服务器返回的是 XML 数据,那么必须设置网络请求管理者的解析器类型以下:
// 这时,服务器返回的数据 responseObject 的数据类型是 NSXMLParser
mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
// 3. 若是服务器返回的是 data(好比:文件数据),这时须要告诉 AFN 不要去解析服务器返回的数据,保持原来的 data 数据就能够了.
mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
}
<2> 须要特别注意的是,服务器返回的数据必定要跟 responseSerializer 相对应.对应关系以下:
{
1> 服务器返回的是JSON数据
* AFJSONResponseSerializer
* AFHTTPResponseSerializer
2> 服务器返回的是XML数据
* AFXMLParserResponseSerializer
* AFHTTPResponseSerializer
3> 服务器返回的是其余数据
* AFHTTPResponseSerializer
}
}web