yangKJ / RxNetworks

🧚 MVP Network Api library. 插件版网络基础架构,支持响应式。
MIT License
225 stars 50 forks source link

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

Closed SnailLoveSmile closed 2 years ago

SnailLoveSmile commented 2 years ago

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

yangKJ commented 2 years ago

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

cdoky commented 2 years ago

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

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]
SnailLoveSmile commented 2 years ago

感谢大家热情回复, 谢谢