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 } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |