आपके उदाहरण में Alamofire.request(.POST, "http://mywebsite.com/post-request", parameters: ["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, स्विफ्ट 3.0):
Alamofire में 4.0 एपीआई बदल गया है। तो कस्टम एन्कोडिंग के लिए हमें मूल्य / वस्तु की आवश्यकता होती है जो 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: [:])