AFNetWorking同时解析MsgPack和JSON等多种返回数据

最近项目遇到一种情况就是,为了减少流量,服务器的正确返回数据会用MsgPack格式进行返回,而错误数据或者网络错误则会以JSON数据格式返回.

首先标准的AFNetWorking是不能解析MsgPack数据格式的,需要加入相应的三方库, 而AFNetWorking的大牛作者为我们提供了两个库,可以很方便的加入进来:

如果用CocoaPod管理三方库, 在Podfile中加入以下两行,这样两个库就加入到工程中了:

pod 'AFMsgPackSerialization', '~> 0.0.1'
pod 'MsgPackSerialization', '~> 0.0.1'
如果手动管理,则需要下载这两个库放入工程中.

第二步就是要根据返回的格式动态解析

AFHTTPRequestOperationManagerresponseSerializeracceptableContentTypes进行设置

我自定义了一个Manager的子类进行数据请求和解析,所以代码如下:

//根据返回类型解析数据
        self.responseSerializer = [AFCompoundResponseSerializer compoundSerializerWithResponseSerializers:@[[AFMsgPackResponseSerializer serializer],[AFJSONRequestSerializer serializer]]];
        self.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/x-msgpack", @"application/json", nil];


顺利达到要求, 不管什么格式返回,都能解析和显示了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值