Swift 在 Alamofire 参数中发送布尔值

Swift Sending Boolean Values in Alamofire Params

在我的应用程序中,我需要在 alamofire 参数中发送布尔值。这是代码

var SearchParams = [String:Any]()
SearchParams["id"] = "125"
SearchParams["my_case"] = false

但是在服务器端接收到的布尔值是字符串。我尝试过多种方式,比如

var SearchParams: [String:Anyobject]?
SrearchParams = ["id":"125","my_case": false]


var SearchParams = [String:AnyObject]()
SearchParams["id"] = "125" as AnyObject
SearchParams["my_case"] = false as AnyObject

但它行不通。

您可以使用 NSNumber class 来传递布尔值。喜欢下面的代码

SearchParams["my_case"] = NSNumber(value: false)

这对你有帮助

代码在这里:

var SearchParams = [String:Any]()
SearchParams["id"] = "\(self.SelectedId)"
SearchParams["my_case"] = false as Bool
let fileUrl = Foundation.URL(string: baseurl)
var request = URLRequest(url: fileUrl!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.allHTTPHeaderFields = ["FirmUserId": "\(self.FirmUserId)", "Authorization": "Token token=\(self.AuthToken)","UserId":"\(self.UserId)"]
request.httpBody = try! JSONSerialization.data(withJSONObject: SearchParams, options: .prettyPrinted)
Alamofire.request(request).responseJSON { response in
}

这对我有帮助

var SearchParams= ["id":"123","iSActive": false] as [String : Any]

这会起作用

var SearchParams= ["id":"123","iSActive": false] as [String : Any]