How can I send a POST request with data in an HTTP body using Alamofire 4? I used custom encoding in swift 2.3, it worked well. I converted my swift 3 code and I tried to encode paramater but it didnβt work. This code:
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 }
and Alamofire request:
let enco : ParameterEncoding = MyCustomEncoding(data: ajsonData) Alamofire.request(urlString, method: .post , parameters: [:], encoding: enco , headers: headers).validate() .responseJSON { response in switch response.result { case .success: print(response) break case .failure(let error): print(error) } }
source share