AFNetworkingV2Client改进版

简介: <p class="p1" style="color:rgb(51,51,51); font-family:Arial; font-size:14px; line-height:26px"> AFNetworkingV2Client</p> <p class="p1" style="color:rgb(51,51,51); font-family:Arial; font-size:14

AFNetworkingV2Client

====================


一、AFHTTPClient是什么?


AFHTTPClient 是在AFNetworkingV2基础上做的改进,主要实现AFHTTPClientV2类,该类根据当前OS进行选择HTTP请求处理方式,

IOS7及其以后,采用AFHTTPSessionManagerIOS7之前采用AFHTTPRequestOperationManager


二、改进:

1)在AFNetworkingV2AFHTTPResponseSerializer属性增加@"text/html"

self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

2)在AFHTTPSessionManagerAFHTTPRequestOperationManager类中增加header方法如下:

- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field;


三、使用方法:


工程示例采用糗事百科的嫩草API

/*

- (void)loadData

{

    [self.indicatorView startAnimating];

    NSMutableDictionary  *params = [NSMutableDictionary dictionaryWithCapacity:2];

    [params setObject:@"5" forKey:@"count"];

    [params setObject:@"1" forKey:@"page"];

    

    __weak QiushiViewController  *weakSelf = self;

    [AFHTTPClientV2 requestWithBaseURLStr:@"http://m2.qiushibaike.com/article/list/latest" params:params httpMethod:HttpMethodGet successBlock:^(id responseObject) {

        

        NSLog(@"GET responseObject: %@",responseObject);

        QiushiViewController  *strongSelf = weakSelf;

        [strongSelf.indicatorView stopAnimating];

        

        if ([responseObject isKindOfClass:[NSDictionary class]]) {

            NSArray *array = [responseObject objectForKey:@"items"];

            NSMutableArray  *strollArray = [NSMutableArray arrayWithCapacity:[array count]];

            for (int i = 0; i < [array count]; i++) {

                NSDictionary *qiushiDic = [array objectAtIndex:i];

                QiuShi *qs = [[QiuShi alloc] initWithQiuShiDictionary:qiushiDic];

                [strollArray addObject:qs];

            }

            

            strongSelf.dataArray = strollArray;

        }


        

    } failedBlock:^(NSError *error) {

        NSLog(@"GET error: %@",error);

        QiushiViewController  *strongSelf = weakSelf;

        [strongSelf.indicatorView stopAnimating];

    }];

}

*/


四、QA交流


本工程希望能给IOS开发者提供些帮助,同时更希望IOS同行,能提出宝贵意见,欢迎拍砖

目录
相关文章
|
网络协议
CLIENT/SERVER模型通讯的基本原理
1、C/S模式简述         基于CLIENT/SERVER模型通讯的基本原理,在服务器端(具有一个具体的IP地址)来监听对服务的请求,当客户端向该地址提出连接请求时,服务器端会对它的请求做出相应的反应。
1618 0
Overlapped I/O 重叠I/O模型Client——》Server
/////////////////////////////////////////////////////// // OverlappedIO.cpp文件 #include #pragma comment(lib, "WS2_32") // 链接到WS2_32.
721 0
|
10月前
|
算法 网络协议 NoSQL
RPC、算法题等知识学习总结
RPC、算法题等知识学习总结
|
iOS开发 Web App开发 Android开发
UIWebView体系结构(八)各个Client综述
各种Clients会有些共性: 1.WebCore会声明抽象基类,各Controller持有基类类型的指针 2.由第三方创建Client并传递指针给Controller,Controller析构时会通知Client,Client此时删除自身。
1010 0
|
10月前
|
消息中间件 Dubbo Java
Simple RPC - 01 框架原理及总体架构初探
Simple RPC - 01 框架原理及总体架构初探
118 0
|
机器学习/深度学习 算法
光流模型概述:从 PWC-Net 到 RAFT
PWC-Net 的设计遵循了三个简单而成熟的原则:金字塔处理,warping 操作和代价计算 ( cost volume )。在传统算法中,如图1左部分所示,通过代价计算得到图像之间的相似度,构建图像金字塔,以处理对不同尺度的光流,再利用 warp 操作按 coarse-to-fine 的顺序,将上一层估计出的光流应用到当前层,以达到逐步优化的目的。
870 0
光流模型概述:从 PWC-Net 到 RAFT
|
测试技术 流计算
gRPC阅读日记(四)Client-side streaming RPC and Bidirectional streaming RPC
gRPC阅读日记(四)Client-side streaming RPC and Bidirectional streaming RPC
|
XML JSON 运维
【RPC基础系列2】一文搞懂gRPC和Thrift的基本原理和区别
之前对于gRPC和Thrift只停留在会用的阶段,虽然也初步了解过两者的执行流程,但时间一长又忘了,如果让我评估两者如何选型,我更是蒙圈。所以就想把之前学习的知识整理一下,来填补自己的知识盲区。
1203 0
【RPC基础系列2】一文搞懂gRPC和Thrift的基本原理和区别