Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- IOS
- PER
- PyQt
- javascript
- Unity
- MS-SQL
- 리눅스
- flutter
- port
- sqlite
- MySQL
- python
- ASP
- mssql
- 날짜
- tensorflow
- 라즈베리파이
- 함수
- Linux
- node.js
- PyQt5
- GIT
- ubuntu
- swift
- 맛집
- 유니티
- 다이어트
- pandas
- Excel
- urllib
Archives
아미(아름다운미소)
[iOS/SWIFT] HTTP 통신하기 본문
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()
}
'랭귀지 > SWIFT' 카테고리의 다른 글
| iOS 키보드 타입 (0) | 2018.02.26 |
|---|---|
| Swift NSURLSession을 통해서 POST로 폼 내용을 전송 (0) | 2018.02.24 |
| [IOS / SWIFT] UserDefault을 사용한 자동로그인 (0) | 2018.02.22 |
| [SWIFT] Launch Image에 이미지 delay time 주기 (0) | 2018.02.16 |
| IOS App Icon 사이즈 포맷 정리 (0) | 2018.02.15 |
Comments