랭귀지/SWIFT
[iOS/SWIFT] HTTP 통신하기
유키공
2018. 2. 23. 10:00
JSONSerialization을 이용한 HTTP 통신하기
다음은 JSON 요청 파라미터를 담아서 POST 요청을 하는 예입니다.@IBAction func jsonPost(_ sender: Any) { // 1. 전송할 값 준비 let userId = (self.userId.text)! let name = (self.name.text)! let param = ["userId": userId, "name": name] // JSON 객체로 변환할 딕셔너리 준비 let paramData = try! JSONSerialization.data(withJSONObject: param, options: []) // 2. URL 객체 정의 let url = URL(string: "http://~~~~"); // 3. URLRequest 객체 정의 및 요청 내용 담기 var request = URLRequest(url: url!) request.httpMethod = "POST" request.httpBody = paramData // 4. HTTP 메시지에 포함될 헤더 설정 request.addValue("applicaion/json", forHTTPHeaderField: "Content-Type") request.setValue(String(paramData.count), forHTTPHeaderField: "Content-Length") // 5. URLSession 객체를 통해 전송 및 응답값 처리 로직 작성 let task = URLSession.shared.dataTask(with: request) {(data, response, error) in guard let data = data, error == nil else { // check for fundamental networking error print("error=\(error)") return } if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors print("statusCode should be 200, but is \(httpStatus.statusCode)") print("response = \(response)") } let responseString = String(data: data, encoding: .utf8) print("responseString = \(responseString)") } // 6. POST 전송 task.resume() }