文档章节

2.AFNetWorking

BKF_
 BKF_
发布于 2016/03/03 01:33
字数 296
阅读 14
收藏 0
点赞 1
评论 0
  1. 封装:如图,AFNetWorking是封装在NSURL上层的网络接口封装。他在OC面向对象的基础上又封装了一次。

  2. 注意:

    AFHTTPRequestOperationManager -- 对NSURLConnection的封装(3.0版本已经去掉NSURLConnection了)
    AFHTTPSessionManager -- 对NSURLSession的封装

    源码中默认的解析方式:可以自己设置。

PS:AFJSONResponseSerializer类中添加:@"text/plain",否者服务器返回数据这种类型无法解析

self.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"application/json", @"text/json", @"text/javascript", nil];
self.requestSerializer = [AFHTTPRequestSerializer serializer];
self.responseSerializer = [AFJSONResponseSerializer serializer];

     3.AFHTTPRequestOperationManager 使用:默认

AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
请求参数
NSMutableDictionary *params = @{@“user”:@"czw"
                                  @"pwd":@"wtf"};

发送请求
POST
NSString *url = @"http://localhost:8080/czw/login";
[mgr POST:url parameters:params    success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // 请求成功的时候回调
    NSLog(@"success:%@", responseObject);
    
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"failure");
}];
GET请求
[mgr GET:url parameters:params    success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // 请求成功的时候回调
    NSLog(@"success:%@", responseObject);
    
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"failure");
}];

3.AFHTTPSessionManager使用

AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
NSString *url = @"http://localhost:8080/czw/login";
[mgr GET:url parameters:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nonnull responseObject) {
    NSLog(@"success:%@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    NSLog(@"failure");
}];

如果要详细的控制可以使用 代理方法

AFHTTPSessionManager:(他的代理方法很强大)

NSURLSessionDelegate,

NSURLSessionTaskDelegate,

NSURLSessionDataDelegate,

NSURLSessionDownloadDelegate



© 著作权归作者所有

共有 人打赏支持
BKF_
粉丝 1
博文 21
码字总数 4291
作品 0
广州
关于Request failed: unacceptable content-type:的错误

1.关于iOS请求"Request failed: unacceptable content-type: XXXX" xxxx可能是:@"text/html",@"text/json",@"application/json"等 AFN默认的是下面的: self.acceptableContentTypes = [N......

追逐iOS
07/03
0
0
iOS NSURLConnection 和 AfNetworking免证书https连接

NSURLConnection 1.1 首先添加代理 //uiViewController.h <NSURLConnectionDelegate,NSURLConnectionDataDelegate,NSURLConnectionDownloadDelegate> 是不是全部需要三个我也没有具体细究,反......

暖冰
2015/12/11
296
0

没有更多内容

加载失败,请刷新页面

加载更多
Crontab作业时间设置

今天,遇到这么一个题目,周一到周五的9:00-16:59之间,每隔两分钟将某个命令运行一次。给的答案是: */2 9-16 * * 1-5 /usr/sbin/somecommand dosomething 乍一看,这个答案不对,应...

大别阿郎
刚刚
0
0
ES17-JAVA API文档管理

1.保存文档 可以通过json工具把java对象转换成json字符串进行保存,也可以通过内置的帮助类直接构建json格式 /** * 获取客户端 * * @return */public static TransportClie...

贾峰uk
1分钟前
0
0
Python代码规范和命名规范

前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头...

blackfoxya
4分钟前
0
0
联动滑动之一:NestScrollChild和NestedScrollingParent

NestScrollChild和NestedScrollingParent 吐槽一下开源中国竟然标题字数有限制 由于项目中使用了CoordinateLayout来解决联动以及实现炫酷的UI效果,那么必须就要研究一波源码了,毕竟知其然知...

JerryLin123
21分钟前
0
0
cloudera spark2.2 读写hbase

cloudera spark2.2 读写hbase 例子 host = 'bigdata-03,bigdata-05,bigdata-04'conf = { "hbase.zookeeper.quorum": host, "hbase.mapreduce.inputtable": "student1"}k......

osenlin
26分钟前
0
0
数据库规范化

转载自 一个小时学会MySQL数据库 地址:http://www.cnblogs.com/best/p/6517755.html 截取其中 1.4 部分 用于自己学习使用 感谢作者:张果 1.4、数据库规范化 经过一系列的步骤,我们现在终于...

十万猛虎下画山
26分钟前
0
0
ios逆向之工具篇

Reveal:查看任意app的UI结构 注:1.不越狱的手机,可以用Reveal来查看自己app的UI结构,不能查看其它app的结构。 2.越狱手机上可以查看任意app的UI结构。 IDA:反编译工具 从App Store下载的...

HeroHY
27分钟前
0
0
EOS区块链平台智能合约示例HelloWorld

我们将介绍一个使用EOS智能合约构建hello World的例子。 一般环境设置通过上一篇文章已经说明,这方面的问题大家可以看本博客上一篇文章,本文引用了官方EOS在Git上的示例。 运行nodeos 要通...

笔阁
29分钟前
0
0
Scrapy爬虫框架简单解析 

scrapy框架解析 Scrapy框架大致包括以下几个组件:Scrapy Engine、Spiders、Scheduler、Item Pipeline、Downloader; 组件 Scrapy Engine 这是框架的核心,负责控制数据流在整个系统的各个组...

zhujun2017
30分钟前
0
0
Vue之ref详解与实例

尽管存在 prop 和事件,有的时候你仍可能需要在 JavaScript 里直接访问一个子组件。为了达到这个目的,你可以通过 ref 特性为这个子组件赋予一个 ID 引用。ref可以加在父级组件上也可以加在子...

tianyawhl
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部