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
- 배열 만들기1
- 객체지향
- 프로그래머스 주사위 게임1
- swift
- 프로그래머스 문자열 붙여서 출력하기
- n번째 원소까지
- 프로그래머스 문자열 정렬하기 (1)
- 프로그래머스 최댓값 만들기(2)
- continue
- 스파르타코딩캠프
- 프로그래머스 n번째 원소까지
- Error installing cocoapods
- 프로그래머스 암호 해독
- cocoapods 설치 오류
- 주사위 게임1
- 프로그래머스
- 문자열 정렬하기 (1)
- 문자열 붙여서 출력하기
- 조건에 맞게 수열 변경하기 3
- Break
- 프로그래머스 n의 배수 고르기
- ruby설치
- Til
- array
- 프로그래머스 배열 만들기1
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 프로그래머스 자동커밋
- 연산자
- 스파르타 코딩클럽 내일배움캠프
- 스페인어
Archives
- Today
- Total
dev._.note
[Swift] URLSession 본문
URLSession
URLSession은 네트워크 데이터를 가져오거나 보내는 작업을 수행합니다.
URLSession의 주요 특징
- 비동기적 네트워킹 (Asynchronous Networking) URLSession은 비동기적으로 네트워크 요청을 처리하므로, 네트워크 작업이 백그라운드에서 수행될 수 있습니다. 이는 앱의 성능을 향상시키고 응답성을 유지하는 데 도움이 됩니다.
- 다양한 데이터 전송 방식 지원 URLSession을 사용하여 데이터를 업로드하거나 다운로드할 수 있으며, JSON, 이미지, 파일 등 다양한 데이터 형식을 처리할 수 있습니다. 이번 숙련 챕터에서의 예제는 JSON 데이터를 다운로드하여 사용합니다.
- 캐시와 쿠키 관리 URLSession은 네트워크 응답을 캐싱하고 쿠키를 관리할 수 있는 기능을 제공합니다.
GET 예시
import Foundation
// URLSession 인스턴스 생성
let session = URLSession.shared
// URL 생성
if let url = URL(string: "<https://api.example.com/data>") {
// URLSessionDataTask를 사용하여 비동기적으로 데이터 요청
let task = session.dataTask(with: url) { (data, response, error) in
if let error = error {
print("Error: \\(error)")
} else if let data = data {
// 데이터를 받아온 후 처리하는 로직을 작성
print("Received data: \\(data)")
}
}
// 네트워크 요청 시작
task.resume()
}
URLRequest를 사용한 POST 예시
import Foundation
// URLSession 인스턴스 생성
let session = URLSession.shared
// URL 생성
if let url = URL(string: "https://api.example.com/data") {
// URLSessionDataTask를 사용하여 비동기적으로 데이터 요청
// URLRequest 생성
var request = URLRequest(url: url)
// HTTP 메서드 설정 (POST)
request.httpMethod = "POST" // GET / PUT / DELETE 사용 가능
// HTTP 헤더 설정
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
// HTTP Body에 보낼 데이터 설정 (JSON 형식)
let parameters: [String: String] = [
"value1": "example value",
"value2": "example value"
// 추가적인 필요한 데이터 추가 가능
]
// HTTP Body에 JSON 데이터 설정
request.httpBody = try? JSONEncoder().encode(parameters)
let task = session.dataTask(with: request) { (data, response, error) in
if let error = error {
print("Error: \(error)")
} else if let data = data {
// 데이터를 받아온 후 처리하는 로직을 작성
print("Received data: \(data)")
}
}
// 네트워크 요청 시작
task.resume()
}
'Dev > SWIFT' 카테고리의 다른 글
[Swift] lazy란? (0) | 2024.01.10 |
---|---|
[Swift] Decodabe, Encodable, Codable (0) | 2024.01.09 |
[Swift] URL 구성요소 (1) | 2024.01.04 |
[Swift] struct와 class (1) | 2024.01.03 |
[Swift] Kiosk 팀과제 2 (2) | 2024.01.02 |