AFNetworking的二次封装

AFNetworking的二次封装在iOS开发中,对于网络请求的封装,大部分人用的都是AFNetworking。对其的二次封装也有不少。前段时间,刚刚需要重构公司的APP,所以就重构了下网络请求。先放代码:XTNetworking框架结构XTNetworking主要是使用了AFNetworking作为网络请求。YYCache做为缓存。这两部分,如果项目里面已经存在可以不做添加。...
摘要由CSDN通过智能技术生成

AFNetworking的二次封装

在iOS开发中,对于网络请求的封装,大部分人用的都是AFNetworking。对其的二次封装也有不少。前段时间,刚刚需要重构公司的APP,所以就重构了下网络请求。

先放代码:XTNetworking

框架结构

XTNetworking主要是使用了AFNetworking作为网络请求。YYCache做为缓存。这两部分,如果项目里面已经存在可以不做添加。

主要的文件:

XTNetworkConfigureManager

网络库常用配置管理类(可以根据自己的需求自定义)。主要使用配置整个网络请求的配置信息。比如用户的登录code,全局控制是否打印请求结果等。

XTApiRequest

这是所有请求类的封装,里面包含了请求的设置、请求方法、以及数据处理。也是整个库的核心

1、以下的属性都是设置当前的网络请求。


/** 请求的缓存类型,默认不使用缓存 */
@property (nonatomic, assign) XTApiRequestCacheType cacheType;

/** 是否开启返回结果打印,默认关闭 */
@property (nonatomic, assign) BOOL isOpenResultLog;

/** 移除通用参数,默认不移除 */
@property (nonatomic, assign) BOOL removeCommonParameters;

/** 请求超时时间 默认20秒 */
@property (nonatomic, assign) NSTimeInterval timeoutInterval;

/** 处理数据的 block(异步进行)*/
@property (nonatomic, copy) XTApiRequestHandleDataBlock handleDataBlock;

/** 请求数据格式 */
@property (nonatomic, assign) XTApiRequestSerializer requestSerializer;

/** 响应数据格式 */
@property (nonatomic, assign) XTApiResponseSerializer responseSerializer;

/** 是否需要继续保持对象,当存在异步上传图片 */
@property (nonatomic,assign) BOOL needRetainWhenAsyncUploadFile;

2、以下的方法都是发起网络请求。

/**
 发起请求

 @param method      请求方式
 @param urlString   请求地址
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RocketMQ是一个分布式消息中间件,而二次封装是指在RocketMQ的基础上进行二次开发,将其封装成更易用、更高效的工具。下面是RocketMQ二次封装的核心要点: 1. 封装RocketMQTemplate:RocketMQTemplate是RocketMQ的核心类,用于发送消息。在二次封装中,可以对其进行增强,例如添加消息发送前的校验、消息发送后的回调等功能。 2. 封装RocketMQListener:RocketMQListener是RocketMQ的消息监听器,用于接收消息。在二次封装中,可以对其进行封装,例如添加消息接收前的校验、消息接收后的处理等功能。 3. 广播消息的应用场景:在RocketMQ中,广播消息是指消息被所有消费者都接收到。在二次封装中,可以根据实际应用场景,对广播消息进行封装,例如添加消息过滤器、消息去重等功能。 下面是RocketMQ二次封装的代码示例: ```java // 封装RocketMQTemplate public class MyRocketMQTemplate extends RocketMQTemplate { @Override public void send(Message message) { // 添加消息发送前的校验 if (message.getPayload() == null) { throw new RuntimeException("消息体不能为空"); } super.send(message); // 添加消息发送后的回调 System.out.println("消息发送成功:" + message); } } // 封装RocketMQListener public class MyRocketMQListener implements RocketMQListener<String> { @Override public void onMessage(String message) { // 添加消息接收前的校验 if (message == null) { throw new RuntimeException("消息体不能为空"); } // 添加消息接收后的处理 System.out.println("接收到消息:" + message); } } // 封装广播消息 public class MyBroadcastMessage { private String content; private String tag; // 添加消息过滤器 public boolean filter(String tag) { return this.tag.equals(tag); } // 添加消息去重 @Override public boolean equals(Object obj) { if (obj instanceof MyBroadcastMessage) { MyBroadcastMessage other = (MyBroadcastMessage) obj; return this.content.equals(other.content) && this.tag.equals(other.tag); } return false; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值