針對不一樣的網絡請求,設置不一樣的數據解析器
{
<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