美文网首页
AFNetwork - Response模块解析

AFNetwork - Response模块解析

作者: 南城同學 | 来源:发表于2020-08-14 13:02 被阅读0次

主题:

网络返回数据处理模块(输入、输出)

概要:

网络结束后的数据处理。

  • 位置:AFURLResponseSerialization.m

核心:

数据解析。


1. 初始化:
  • 默认解析Json格式
//AFHTTPSessionManager.m p85
self.responseSerializer = [AFJSONResponseSerializer serializer];
2. 当网络返回数据时,入口:
// AFURLSessionManager.m  p217
#pragma mark - NSURLSessionTaskDelegate
- (void)URLSession:(__unused NSURLSession *)session
              task:(NSURLSessionTask *)task
didCompleteWithError:(NSError *)error
{
>>>>>
      NSError *serializationError = nil;
      responseObject = [manager.responseSerializer responseObjectForResponse:task.response data:data error:&serializationError];
>>>>>
}

通过如下方法对Json数据进行解析:

  • responseObject = [NSJSONSerialization JSONObjectWithData:data options:self.readingOptions error:&serializationError];
//AFURLResponseSerialization.m p235
#pragma mark - AFURLResponseSerialization
- (id)responseObjectForResponse:(NSURLResponse *)response
                           data:(NSData *)data
                          error:(NSError *__autoreleasing *)error
{
>>>>>
BOOL isSpace = [data isEqualToData:[NSData dataWithBytes:" " length:1]];
    if (data.length > 0 && !isSpace) {
        responseObject = [NSJSONSerialization JSONObjectWithData:data options:self.readingOptions error:&serializationError];
    } else {
        return nil;
    }
>>>>>
}

相关文章

网友评论

      本文标题:AFNetwork - Response模块解析

      本文链接:https://www.haomeiwen.com/subject/odqgdktx.html