我需要从Swift 3.0进行API调用,即SailsJS平台。
我需要制作以下蓝色打印路线。
网址:https://[myapiCall]/[model]?where= {“approvalStatus”:{“not”:“已批准”}}
这与Browser / Postman完美配合
在Swift中,我按如下方式创建了这个url字符串:
var URL:String = "https://<myapiCall>/<model>?where={\"approvalStatus\":{\"not\":\"Approved\"}}"
调用的结果代码包括转义字符。
我尝试过许多替代方法。
答案 0 :(得分:1)
您没有正确编码。这是来自Swift 3游乐场的一些工作代码:
if var components = URLComponents(string: "https://server/model") {
var query = [ "approvalStatus" : [ "not" : "Approved" ] ]
var serialized = try! JSONSerialization.data(withJSONObject: query, options: .init(rawValue: 0))
var jsonStr = String(data: serialized, encoding: .utf8)
let queryItem = URLQueryItem(name: "where", value: jsonStr)
components.queryItems = [queryItem]
print (components.url!)
}
这会打印"https://server/model?where=%7B%22approvalStatus%22:%7B%22not%22:%22Approved%22%7D%7D"