如何在发布时为Alamofire添加requestSerializer?

时间:2016-11-27 02:35:37

标签: json swift alamofire

使用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.

有没有身体帮助我?感谢。

0 个答案:

没有答案