Swift 2 & json post 问题
Swift 2 & json post issue
我对使用 swift 和 json 还是很陌生,我正在努力解决以下问题并收到一条错误消息:let param = jsonObj.dataUsingEncoding( NSUTF8StringEncoding)。错误是:- 类型 'String : NSString' 的值没有 dataUsingEncoding
let url = "{URLADDRESS/PHP FILE}"
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
let session = NSURLSession.sharedSession()
let jsonObj = ["usEmail":email, "usFullName":name, "usAddress":address, "usArea/District":area, "usPostTown":town, "usPostZip":zip, "usContactNum":number]
request.HTTPMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
do {
let param = jsonObj.dataUsingEncoding(NSUTF8StringEncoding)
request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(jsonObj, options: [])
} catch {
print(error)
request.HTTPBody = nil
}
如果有人能帮助我并告诉我问题出在哪里,我将不胜感激。
谢谢
方法 .dataUsingEncoding 存在于 String 类型,你必须创建一个字符串而不是 [String:NSString] 字典。
所以你已经这样做了:
let email = "@gmail"
let name = "Kostia"
let address = "Home"
let area = "UA"
let town = "Kiev"
let zip = "11111"
let number = "123456"
let stringJson = "{\"usEmail\":\"\(email)\",\"usFullName\":\"\(name)\",\"usAddress\":\"\(address)\",\"usArea/District\":\"\(area)\",\"usPostTown\":\"\(town)\",\"usPostZip\":\"\(zip)\",\"usContactNum\":\"\(number)\",}"
let data = stringJson.dataUsingEncoding(NSUTF8StringEncoding)!
do {
let jsonObj = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String:String]
} catch (let error as NSError) {
print("ERROR be like: ", error)
}
我对使用 swift 和 json 还是很陌生,我正在努力解决以下问题并收到一条错误消息:let param = jsonObj.dataUsingEncoding( NSUTF8StringEncoding)。错误是:- 类型 'String : NSString' 的值没有 dataUsingEncoding
let url = "{URLADDRESS/PHP FILE}"
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
let session = NSURLSession.sharedSession()
let jsonObj = ["usEmail":email, "usFullName":name, "usAddress":address, "usArea/District":area, "usPostTown":town, "usPostZip":zip, "usContactNum":number]
request.HTTPMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
do {
let param = jsonObj.dataUsingEncoding(NSUTF8StringEncoding)
request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(jsonObj, options: [])
} catch {
print(error)
request.HTTPBody = nil
}
如果有人能帮助我并告诉我问题出在哪里,我将不胜感激。
谢谢
方法 .dataUsingEncoding 存在于 String 类型,你必须创建一个字符串而不是 [String:NSString] 字典。 所以你已经这样做了:
let email = "@gmail"
let name = "Kostia"
let address = "Home"
let area = "UA"
let town = "Kiev"
let zip = "11111"
let number = "123456"
let stringJson = "{\"usEmail\":\"\(email)\",\"usFullName\":\"\(name)\",\"usAddress\":\"\(address)\",\"usArea/District\":\"\(area)\",\"usPostTown\":\"\(town)\",\"usPostZip\":\"\(zip)\",\"usContactNum\":\"\(number)\",}"
let data = stringJson.dataUsingEncoding(NSUTF8StringEncoding)!
do {
let jsonObj = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String:String]
} catch (let error as NSError) {
print("ERROR be like: ", error)
}