[swift] Swift로 HTTP 요청에서 바이너리 데이터 받기

Swift를 사용하여 HTTP 요청을 보내고 응답으로 바이너리 데이터를 받는 방법에 대해 알아보겠습니다.

URLSession 이용하기

Swift의 URLSession을 사용하면 간단하게 HTTP 요청을 보낼 수 있습니다. 아래의 코드는 GET 요청을 보내는 예제입니다.

let url = URL(string: "https://example.com/api/data")!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
    guard let data = data else {
        // 요청에 실패한 경우 처리 코드를 작성합니다.
        return
    }
    
    // 데이터가 성공적으로 받아진 경우 처리 코드를 작성합니다.
}

task.resume()

위의 코드에서 dataTask(with:completionHandler:) 메서드를 사용하여 요청을 보내고, 성공적인 경우 data 매개변수에 바이너리 데이터가 전달됩니다. 이후 해당 데이터를 원하는 대로 처리할 수 있습니다.

바이너리 데이터 저장하기

바이너리 데이터를 받은 후, 파일로 저장하고 싶다면 FileManager를 사용할 수 있습니다. 아래의 코드는 받은 데이터를 example.bin 파일로 저장하는 예제입니다.

let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("example.bin")

try? data?.write(to: fileURL)

위의 코드에서는 FileManagerurls(for:in:) 메서드를 사용하여 문서 디렉토리의 URL을 가져온 뒤, appendingPathComponent(_:) 메서드를 사용하여 파일 이름을 추가합니다. 마지막으로 write(to:) 메서드를 사용하여 데이터를 파일로 저장합니다.

결론

위의 예제를 참고하여 Swift로 HTTP 요청에서 바이너리 데이터를 받는 방법을 알아보았습니다. URLSession을 이용하여 요청을 보내고, 받은 데이터를 처리하고 저장하는 방법을 알려드렸습니다. 문제가 발생할 경우 에러 처리 코드도 작성해야합니다. 이를 참고하여 원하는 대로 HTTP 요청을 수행할 수 있습니다.

참고 자료