【发布时间】:2019-01-15 07:54:36
【问题描述】:
我正在尝试从 swift (issue_id) 向 JSON 的正文添加一个值,我到处搜索,但看起来没有人真正回答或问我的问题。我也尝试将它添加到显然失败的参数中。
我知道如何添加参数和标题,但我不知道如何向正文中添加值,这是代码
private func restAPI(path: String, method: String, params: [String: Any], callback: @escaping(_ result: [[String: Any]]) -> Void) {
var url: String = ""
if path == "/login" {
let dict = dictConvert(dictionary: params)
url = baseUrl + path + dict
}
else {
url = baseUrl + path
}
guard let urlData = URL(string: url) else {
callback([])
return
}
print("===URL=== " + url)
let request = NSMutableURLRequest(url: urlData)
request.httpMethod = "POST"
if let key = UserDefaults.standard.string(forKey: "auth-key") {
print("===Authentication=== " + key)
request.addValue(key, forHTTPHeaderField: "Authentication")
}
let task = URLSession.shared.dataTask(with: request as URLRequest, completionHandler:{ (data, _ , error) in
if error == nil {
do {
let stringData = String(data: data!, encoding: String.Encoding.utf8) as String!
print("Data === " + (stringData ?? "nil"))
if let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSArray {
guard let jsonArray = json as? [[String: Any]] else {
callback([])
return
}
callback(jsonArray)
}
else if let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary {
guard let jsonArray = json as? [String: Any] else {
callback([])
return
}
callback([jsonArray])
}
else {
callback([])
}
}
catch _ {
callback([])
}
}
})
task.resume()
}
【问题讨论】: