예제에 Alamofire.request(.POST, "http://mywebsite.com/post-request", parameters: ["foo": "bar"])
이미 "foo = bar"문자열이 본문으로 포함되어 있습니다. 그러나 정말로 사용자 정의 형식의 문자열을 원한다면. 다음과 같이 할 수 있습니다.
Alamofire.request(.POST, "http://mywebsite.com/post-request", parameters: [:], encoding: .Custom({
(convertible, params) in
var mutableRequest = convertible.URLRequest.copy() as NSMutableURLRequest
mutableRequest.HTTPBody = "myBodyString".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
return (mutableRequest, nil)
}))
주 : parameters
안nil
업데이트 (Alamofire 4.0, Swift 3.0) :
Alamofire 4.0에서 API가 변경되었습니다. 따라서 사용자 정의 인코딩의 경우 ParameterEncoding
프로토콜 을 준수하는 값 / 객체가 필요 합니다.
extension String: ParameterEncoding {
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try urlRequest.asURLRequest()
request.httpBody = data(using: .utf8, allowLossyConversion: false)
return request
}
}
Alamofire.request("http://mywebsite.com/post-request", method: .post, parameters: [:], encoding: "myBody", headers: [:])