[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()

코드 설명

  1. fileURL: 다운로드 받을 파일의 URL을 저장하는 변수입니다. 예시에서는 “http://example.com/file.pdf”로 설정되어 있습니다. 다운로드 받을 파일의 실제 URL로 변경해줘야 합니다.

  2. savePathURL: 다운로드 받은 파일이 저장될 경로를 저장하는 변수입니다. 예시에서는 파일을 사용자의 문서 디렉토리에 “file.pdf”라는 이름으로 저장하도록 설정되어 있습니다.

  3. URLSession.shared.downloadTask(with:completionHandler:)를 사용하여 파일 다운로드 작업을 수행합니다. 다운로드 작업의 완료 핸들러는 클로저로 구현되어 있으며, 다운로드가 완료되면 파일이 저장될 경로로 파일을 이동시킵니다.

  4. task.resume()을 호출하여 다운로드 작업을 시작합니다. 이때, 다운로드 작업은 비동기로 실행되므로, 작업이 완료될 때까지 다음 코드가 실행되지 않습니다.

참고 자료