[swift] Swift로 파일 다운로드 요청 보내기
파일 다운로드 요청을 보내는 것은 Swift에서 매우 간단합니다. URLSession과 URLSessionDataTask를 사용하여 간단한 몇 줄의 코드로 요청을 보낼 수 있습니다.
필요한 준비물
다운로드 파일의 URL을 알고 있어야 합니다. 다운로드 받을 파일이 있는 서버의 URL이어야 합니다. 또한, 다운로드 받을 파일의 저장 경로도 준비해야 합니다.
코드 예시
import Foundation
func downloadFile() {
let fileURL = URL(string: "http://example.com/file.pdf")!
let savePathURL: URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("file.pdf")
let task = URLSession.shared.downloadTask(with: fileURL) { (localURL, response, error) in
if let error = error {
print("File download failed with error: \(error.localizedDescription)")
return
}
if let localURL = localURL {
do {
try FileManager.default.moveItem(at: localURL, to: savePathURL)
print("File downloaded successfully.")
} catch let error {
print("Failed to move the downloaded file to its destination: \(error.localizedDescription)")
}
}
}
task.resume()
}
downloadFile()
코드 설명
-
fileURL: 다운로드 받을 파일의 URL을 저장하는 변수입니다. 예시에서는 “http://example.com/file.pdf”로 설정되어 있습니다. 다운로드 받을 파일의 실제 URL로 변경해줘야 합니다.
-
savePathURL: 다운로드 받은 파일이 저장될 경로를 저장하는 변수입니다. 예시에서는 파일을 사용자의 문서 디렉토리에 “file.pdf”라는 이름으로 저장하도록 설정되어 있습니다.
-
URLSession.shared.downloadTask(with:completionHandler:)를 사용하여 파일 다운로드 작업을 수행합니다. 다운로드 작업의 완료 핸들러는 클로저로 구현되어 있으며, 다운로드가 완료되면 파일이 저장될 경로로 파일을 이동시킵니다.
-
task.resume()을 호출하여 다운로드 작업을 시작합니다. 이때, 다운로드 작업은 비동기로 실행되므로, 작업이 완료될 때까지 다음 코드가 실행되지 않습니다.