如何为Alamofire邮政请求主体设置UTF8编码



我想将编码的JSON主体发送到我的REST API。我的代码现在是

var body : [String:Any]? = ["version":Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? ""];
.
.
body?["type"] = type
var url : String = UserDefaults.standard.value(forKey:"url") as! String
url.append("MobileLogin")
Alamofire.request(url, method: .post, parameters:body, encoding: JSONEncoding.default, headers: nil).responseJSON { (responseData) in
    if((responseData.result.value) != nil) {
    .
    .
    }
}

问题在于,JSON发送了未编码的UTF8。关于如何在Alamofire请求中设置诸如" jsonencoding.encode(" utf8"("之类的内容?

尝试此

let options = NSJSONWritingOptions()
    let data = try NSJSONSerialization.dataWithJSONObject(parameters!, options: options)
    mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
    mutableURLRequest.HTTPBody = data

或其他方式

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(url, method: .post, parameters: [:], encoding: "myBody", headers: [:])

最新更新