小编Cag*_*tay的帖子

带有Alamofire 4的数据的POST请求

如何使用Alamofire 4在HTTP正文中发送带有数据的POST请求?我在swift 2.3上使用自定义编码它运行良好.我转换了我的代码swift 3,我尝试使用paramater编码,但没有工作.这段代码:

public struct MyCustomEncoding : ParameterEncoding {
private let data: Data
init(data: Data) {
    self.data = data
}
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {

    var urlRequest = try urlRequest.asURLRequest()        
    do {            
            urlRequest.httpBody = data
            urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")

    } catch {
        throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: error))
    }

    return urlRequest
}
Run Code Online (Sandbox Code Playgroud)

和Alamofire要求:

let enco : ParameterEncoding = MyCustomEncoding(data: ajsonData)
    Alamofire.request(urlString, method: .post , parameters: [:], encoding: enco , headers: headers).validate()
                .responseJSON { response in …
Run Code Online (Sandbox Code Playgroud)

encoding ios swift alamofire swift3

17
推荐指数
2
解决办法
4万
查看次数

标签 统计

alamofire ×1

encoding ×1

ios ×1

swift ×1

swift3 ×1