2016년 11월 27일 일요일

[ios swift 3] http json 통신

1. GET 방식

let url = URL(string:"")
var request = URLRequest(url:url!)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with:request) { data, response, err in
if err != nil {
Utils.Log("error::\(err)")
} else {
do {
let json = try JSONSerialization.jsonObject(with:data!, options:.mutableContainers) as! [String:AnyObject]

let status = json["status"] as! Bool
if status {
}
} catch {
Utils.Log("error::\(error)")
}
}
}
task.resume()

만약 데이터에 한글이 있을 경우
let link = "url string"
// 한글 처리
let url:URL = URL(string:link.addingPercentEncoding(withAllowedCharacters:.urlQueryAllowed)!)!


2. POST 방식

let json = ["type":value, "type":value] as [String:Any]
var jsonData:Data
do {
jsonData = try JSONSerialization.data(withJSONObject:json, options:.prettyPrinted)
} catch {
Utils.Log("error::\(error)")
return
}

let url:URL = URL(string:"")!
var request:URLRequest = URLRequest(url:url)
request.httpMethod = "POST"
request.httpBody = jsonData
let task = URLSession.shared.dataTask(with:request) { data, response, err in
if err != nil {
Utils.Log("error::\(err)")
} else {
do {
let str = String(data:data!, encoding:.utf8)
Utils.Log("str::\(str)")
let json = try JSONSerialization.jsonObject(with:data!, options:.mutableContainers) as! [String:AnyObject]

let status = json["status"] as! Bool
if status {
}
} catch {
Utils.Log("error::\(error)")
}
}
}
task.resume()

댓글 없음:

댓글 쓰기