swift 网络封装 基于Alamfire、ObjectMapper

2 篇文章 0 订阅

目录

一、使用方法

二、内容介绍

1、LYHConfig:网络基本配置类

2、LYHRequest:请求基类,生成api基类

3、LYHArrayRequest:一个数组协议,为了解析数组方便,不用管他

4、LYHNetworkError: 网络错误统一处理的地方,可以自定义错误类型

5、LYHRequestManager:请求自定义事件处理的地方,例如:成功失败的处理,弹框的处理,开始请求的时机


几个月前自己想写个玩的新项目,就顺便写了一个网络二次封装,以后新项目就可以直接使用。最近更新到swift4.2

代码没注释,我也不想加~~~

demo下载地址:https://github.com/wokua/LYHNetwork.git,下面介绍下我写的这个封装的请求,喜欢的话,麻烦打个星支持下

一、使用方法

import Foundation
import ObjectMapper

class JokeModel : Mappable{
    var content : String = "";
    required convenience init?(map: Map) {
        self.init()
    }
    
    func mapping(map: Map) {
        content <- map["content"]
    }
    
}
class JokerApi : LYHRequest<[JokeModel]>{//(返回数组写数组、单个写单个,空写(),字符串写String)
    
    override func method() -> LYHHTTPMethod { return .get }
    
    override func api() -> String { return "joke/content/list.php" }
    
    override func addParameters(_ parameters: inout [String : Any]) {
        parameters["sort"] = "asc"
        parameters["page"] = 1
        parameters["pagesize"] = 10
        parameters["time"] = "1418816972"
    }
    
}//

vc 里面调用,注意必须存储API实例对象


 api.manager.showHUD().on( success: { [weak self](arr) in
            self?.dataArr = arr
            self?.tableView.reloadData()
        }).request()

二、内容介绍

1、LYHConfig:网络基本配置类

详情:

baseUrl : 公司IP地址,每个请求前公有的部分,在此项目里面,少数不共有的由http开头即可

timeOut:超时时间

generalParament:请求的默认参数

generalHeader:默认请求头

generalResponse:默认解析方式,本代码例子中:[“result”,”data"],代表要解析的数据类型为这种:

{

    “result” :{

                      data : “内容”

                 }

}

2、LYHRequest:请求基类,生成api基类

Agent:和almfire联系发布请求的类

success、failure请求成功或者失败的处理

param:参数传递设置

baseUrl:请求URL拼接的前半部分,不设置默认config中的

api:请求拼接的后半部分

method:请求方式

timeOut:当前请求时间,不设置默认config里面的

addParameters:当前接口参数

addFiles:设置文件信息,上传时使用

3、LYHArrayRequest:一个数组协议,为了解析数组方便,不用管他

4、LYHNetworkError: 网络错误统一处理的地方,可以自定义错误类型

5、LYHRequestManager:请求自定义事件处理的地方,例如:成功失败的处理,弹框的处理,开始请求的时机

showHUD():调用即展示请求加在框,不调用不弹框

on:参数意思:start请求开始时调用的方法,success:请求返回成功时调用的方法,failure:请求失败时调用的方法,completed:请求完成(成功、失败)时调用的方法

request():开始请求,分四种类型,由api范型确定

upload():开始上传,分四种类型,由api范型确定

LYHAgent:和alamfire交互,请求的类

buildRequest:建立网络请求,处理头、参数等,请求数据

buildUpload:建立网络请求,处理头、参数等,上传数据

LYHResponse:解析返回数据的类

分四种解析方式,有api范型协议确定:(Mappable协议对象,元素为MAppable协议的数组,字符串,空)

vaildResponse:从返回数据中获取data的地方,在这里可以自行洗定义错误处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值