iOS开发 AFNetworking 3.0使用遇到的问题补充

作者: Ke_Wang | 来源:发表于2016-02-17 09:35 被阅读16631次

    前段时间写了一个iOS开发之AFNetworking 3.0.4使用这篇文章,是基本的用法,昨天在使用的时候又出现了几个问题,特地俩记录下,希望能帮到大家!

    问题一

    我是做一个获取手机验证码的功能,进行一个网络请求,验证码也发给我了,后台的也跟我说请求成功了,但是我这边打印信息显示直接进入了错误的回调。。。如下图:


    验证码获取返回格式问题

    报错说是返回类型不一致,后来查明原因,是返回的格式问题(虽然后台跟我说返回的json)需要添加上这么一句话:

        //如果报接受类型不一致请替换一致text/html或别的
        manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
    

    此问题解决!

    问题二

    由于以前我用AFN,这次偷懒直接把以前的代码复制了一下,然后用的时候后台跟我说穿不过去参数,我这边确定参数什么的都写了,也没写错,但是还是穿不过去参数。于是我查了一下代码,发现代码中有这两句话:


    声明返回类型

    声明请求和返回的数据是json。问题就出在第一句话上,因为我这边声明了传过去的参数是json格式,但是我写的格式并不是json的,AFN就把我的参数过滤了,所以后台那边收到的我传过去的参数就是NULL了。。(这是我自己的理解,有不对的地方希望大神能够指正一下)
    解决办法我是吧两个直接注释了(因为我知道返回的是json,第二句加不加都一样)。
    在这里,第一句加上是铁定会错的,第二句就无所谓了。。。


    目前遇到的问题就这么两个,以后如果遇到的话再来添加。


    PS:再补充一下,现在好多朋友还在用AFN2.0版本,它是基于NSURLConnection写的,但是苹果在Xcode7 中弃用了这个(虽然还可以使用),改用NSURLSession,而AFN3.0就是基于NSURLSession来做的,AFN3.0中删除了 基于NSURLConnection的东西,如以前常用的AFURLConnectionOperation、AFHTTPRequestOperation、AFHTTPRequestOperationManager等,AFN 3.0版本现在正式支持的iOS 7, Mac OS X的10.9, watchOS 2 , tvOS 9 和Xcode 7,所以觉得还是用新的好,万一彻底删除了NSURLConnection,那岂不是全部要瞎了。。。

    AFN 2.0升级到最新的版本API,可以看这篇文字专门过渡的。

    有什么问题希望大家能够指出,谢谢大家!

    相关文章

      网友评论

      • ShineYangGod:终于解决了,就是那句话,哎
      • ab3441a8feb2:楼主 第二个问题 我传参数 加了请求头 你把第一行删除怎么添加 请求头啊!!!在线等
      • 萨达搜索到:想请教下楼主,本人新手, 那个循环上传是要如何处理呢 比如本地有n个文件需要上传 每上传完一个 我需要告诉用户进度的这种
        萨达搜索到:@wave_developer 有木有直接贴代码的 大神
        dev_wave:可以写个队列呀
        Ke_Wang:@紫霞大仙F 这个我没有干过呀 也不敢乱说 。。。你再查一下资料啊。。
      • 84ac3d676fbe:使用AFNetWorking 3.0.4请求数据,既不执行成功的方法,也不执行失败的方法,该怎么解决。
        Ke_Wang:@娄亚雄 估计是你们后台服务器那边的,没有回调, 你可以跟后台的对一下看看
        84ac3d676fbe:传完参数之后不进入成功的方法也不进入失败的方法
        Ke_Wang:打个断点看下进没进呀
      • 缺舟:你好,大神,我遇到了你说的第二个问题,但是我即便使用了你说的方法也无法解决,在请求中我使用上传文件流的方式传递参数,但是后台无法接受到参数,一直是null。
        而我使用普通的网络请求(就是不能上传文件的请求方法)就可以传递参数,我想问哈有解决的建议吗?
        缺舟: @WK_IOSDevelpoer 你解决了没有吗 我那个其实我是传过去了 是后台解析错误了
        Ke_Wang:@红薯大大 你可以看下你传过去的是什么格式 看看后台返回来的是什么格式的。。。。
        云逸致:@缺舟 我现在也遇到了这样的问题,问一下你解决了吗?
      • 1b2ae550dc99:请问,网络请求取消,怎么解决?
        Ke_Wang:@行进的NSLog 代理中好像有个方法,能停止的,你找一下,我也忘了具体叫啥了:joy::joy:
        1b2ae550dc99:我发了一个请求,这时候网络不好,还在转圈,我不想等了,直接点击返回按钮,pop出了这个界面,但是请求还在继续,这个时候应该怎么结束这个请求呢
        Ke_Wang:@行进的NSLog 取消?什么情况?
      • 漂泊的煙烣:请问 AFNetworking 3.0 同步请求怎搞?
        CL0601:@漂泊的煙烣 亲 你的那个方法会直接卡死的 无法返回的 求解答
        漂泊的煙烣:@子书不言 NSParameterAssert(manager); // prevent infinite loop
        dispatch_async(dispatch_get_global_queue(0, 0), ^{

        dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);

        NSLog(@"1111111111");

        [manager GET:self.paramsModel.apiUrl parameters:self.paramsModel.paramsDic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {

        [self responseResult:responseObject successBlock:successBlock];
        dispatch_semaphore_signal(semaphore);
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        [self responsResultError:error failure:failureBlock];
        dispatch_semaphore_signal(semaphore);
        }];

        dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
        NSLog(@"333333333");
        });
        子书不言:@漂泊的煙烣 层主解决了吗,我也在搞这个
      • R呀呦:楼主遇到过这个问题么 Domain=NSURLErrorDomain Code=-999 "cancelled"
        王天琦:@R呀呦 你好层主, 麻烦问一下这个解决了吗?
        R呀呦:@WK_IOSDevelpoer fan迁移到3.0之后,post请求https之后出现的
        Ke_Wang:@R呀呦 没有啊 你这是什么情况下遇到的呀
      • sea7reen: manager.requestSerializer = [AFHTTPRequestSerializer serializer];
        manager.responseSerializer = [AFHTTPResponseSerializer serializer];
        manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];
        Ke_Wang:@兰州一碗面 返回的什么?
        兰州一碗面:@niu神DNS 返回数据流是怎么解决的?
        niu神DNS:@sea7reen 这是对的么? 运行之后 直接返回的数据流
      • 幻凌风:呵呵,第二个问题跟我前两天遇到的壹样,虽然我是小白,不太懂,有时候也就是看着别人写的东西,觉得会用就行!我以前想法也简单,基本都不加这两句,正好这次上传头像图片,不想翻以前自己写习惯的代码,索性就把朋友给我的头像上传代码复制了过来,结果发现上传报错,把这两句屏蔽掉之后OK了 。。。

      本文标题:iOS开发 AFNetworking 3.0使用遇到的问题补充

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