yangKJ / RxNetworks

🧚 MVP Network Api library. 插件版网络基础架构,支持响应式。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

原 Moya 中 task: Moya.Task {} 可以指定参数编码方式, 这个能往外传递, 我们来定义吗, 现在框架默认post 用的JSONEncoding, 我们公司用的URLEncoding

SnailLoveSmile opened this issue · comments

commented
原 Moya 中 task: Moya.Task {} 可以指定参数编码方式, 这个能往外传递, 我们来定义吗, 现在框架默认post 用的JSONEncoding, 我们公司用的URLEncoding
commented

发送请求前 需要对原有的参数 进行 签名得到一个值后再加到请求参数中, 能在哪里做统一处理呀, 谢谢

commented

1.本来就是走的协议,可以自己去实现task
2.也可以继承NetworkAPI,然后默认实现你的需求
3.签名方面可以自己去写插件实现,可以在configuration插件协议当中去实现你的签名需求

发送请求前 需要对原有的参数 进行 签名得到一个值后再加到请求参数中, 能在哪里做统一处理呀, 谢谢

extension AuthPlugin: PluginSubType {
    public var pluginName: String {
        "AuthPlugin"
    }
    
    public func prepare(_ request: URLRequest, target: TargetType) -> URLRequest {
        var _urlRequest = request
        let token = "xxxxx"

        let crytoInfo = (x_date: xxx, signture: xxxx)
        _urlRequest.headers.add(name: "X-Date", value: crytoInfo.x_date)
        _urlRequest.headers.add(name: "Authorization", value: crytoInfo.signture)
        
        return _urlRequest
    }
}

// 用法
// NetworkConfig.injectionPlugins = [AuthPlugin.shared]
commented

感谢大家热情回复, 谢谢