我有使用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 } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。