使用AFNetworking时,我这样做是为了自定义requestSerializer:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:urlString parameters:parameters progress:nil success:xxxxxx];
但是,我不知道如何在Swift代码中使用Alamofire来处理这个问题。 我找到的唯一解决方案是
Alamofire.request(urlString, method: .post, parameters: parameters, encoding: .JSON, headers: nil)
它来自这个问题 How to Set requestSerializer in Alamofire。 但它不起作用。 错误信息是:
Extra argument 'method' in call.
我发现其他人说另一种方法:
struct JSONStringArrayEncoding: ParameterEncoding {
private let array: [String]
init(array: [String]) {
self.array = array
}
func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var urlRequest = urlRequest.urlRequest
let data = try JSONSerialization.data(withJSONObject: array, options: [])
if urlRequest?.value(forHTTPHeaderField: "Content-Type") == nil {
urlRequest?.setValue("application/json", forHTTPHeaderField: "Content-Type")
}
urlRequest?.httpBody = data
return urlRequest!
}
}
它也不起作用,并显示
Extra argument 'method' in call.
有没有身体帮助我?感谢。