IOS AFNetWorking 3.0用法步骤详解

由于iOS开发中常常涉及到网络数据交互的问题,同时因为iOS之前的自带框架略坑爹,同时有较好的第三方框架AFNetworking的存在,所以在这次项目的操作中使用AFNetworking进行网络层的数据交互。同时由于网络上大部分的AFNetworking使用教程还是使用2.0版本,所以在此介绍3.0版本的简单使用。

AFNetworking的使用主要分为三步:
1. 创建会话(Session)
2. 创建请求(request)
3. 创建任务(task),对数据进行上传。

同时由于数据上传主要分为POST和GET两种方法,所以对于两种不同的请求方式在request创建的时候回有所差别。

一、创建会话(Session)
这里写图片描述

区别:

defaultSessionConfiguration: 创建一个能够保存cookie和缓存的session。 
ephemeralSessionConfiguration:创建一个不保存cookie和缓存的session。 
backgroundSessionConfigurationWithIdentifier:创建一个支持httphttps并且可以在后台运行的session。

默认情况下只要使用第一个defaultSessionConfiguration即可。

二、创建请求(Request)

请求中一般包含了我们需要传输的数据。所以所有上传的HTTP头文件的内容都包含在其中。

此处由于有分POST和GET,所以我们在创建请求的时候也要区分。

这里写图片描述

区别:

之所以使用NSMutableURLRequest而不是传统的NSURLRequest,是因为这里有一个Method参数用来区分是POST还是GET,而默认的NSURLRequest使用的是GET方法。 
同时在加载过程中,通过formData来加载内部数据,从而构建HTTP头。

三、创建任务(Task)

任务的创建和任务的执行代码如下:
这里写图片描述

上面只是简单的Task创建和处理,最后返回的response中是返回的内容的头,responseObject是返回内容的body,由于是数据库的形式进行传输的,所以需要使用编码对二进制内容进行编译,从而获的对应的字符串内容。对于AFNetworking是异步传输数据的,所以如果需要更新页面的话,需要在else中通过调用主线程,从而更新UI。

常见问题及解决方法:

问题一:
这里写图片描述

问题:ERROR -1016
产生原因:使用POD加载库的时候,因为内部没有text这个类型,所以为了防止第三方库和POD的变更在代码中直接增加这个类型。
解决方法:
在创建Manager的时候加入以下代码:

这里写图片描述

问题二:

这里写图片描述

问题:ERROR 3840
产生原因:返回的内容没有按照JSON进行保存,JSON无法解析
解决方法:
在创建Manager的时候加入以下代码:

这里写图片描述

问题三:

这里写图片描述

问题四:

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值