加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – Alamofire 3自定义编码到Alamofire 4自定义编码

发布时间:2020-12-14 04:51:57 所属栏目:百科 来源:网络整理
导读:我有使用customParameterEncoding在Alamofire 3中编写方法.这个自定义编码只是在queryString中替换“[] =”和“=”并返回它. Alamofire.request(.GET,SearchURL,parameters: params,encoding: customEncoding,headers: headers).validate().responseJSON { r
我有使用customParameterEncoding在Alamofire 3中编写方法.这个自定义编码只是在queryString中替换“[] =”和“=”并返回它.

Alamofire.request(.GET,SearchURL,parameters: params,encoding: customEncoding,headers: headers).validate().responseJSON {
            response in
            switch response.result {
            case .success:
                print("success")
                break
            case .failure(let error):
                print("Error: " + error.localizedDescription)
                break
            }
        }

和自定义编码参数

let customEncoding =  ParameterEncoding.Custom { requestConvertible,parameters in
    let (mutableRequest,error) = ParameterEncoding.URL.encode(requestConvertible,parameters: parameters)
    mutableRequest.URL = NSURL(string: mutableRequest.URLString.stringByReplacingOccurrencesOfString("%5B%5D=",withString: "="))
    return (mutableRequest,error)
}

如何将customEncoding转换为Alamofire 4版本?

解决方法

在Alamofire 4.0中,您应该使用ParameterEncoding.

struct CustomEncoding: ParameterEncoding {
    func encode(_ urlRequest: URLRequestConvertible,with parameters: Parameters?) throws -> URLRequest {
        var request = try! URLEncoding().encode(urlRequest,with: parameters)
        let urlString = request.url?.absoluteString.replacingOccurrences(of: "%5B%5D=",with: "=")
        request.url = URL(string: urlString!)
        return request
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读