[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)
위의 코드에서는 FileManager
의 urls(for:in:)
메서드를 사용하여 문서 디렉토리의 URL을 가져온 뒤, appendingPathComponent(_:)
메서드를 사용하여 파일 이름을 추가합니다. 마지막으로 write(to:)
메서드를 사용하여 데이터를 파일로 저장합니다.
결론
위의 예제를 참고하여 Swift로 HTTP 요청에서 바이너리 데이터를 받는 방법을 알아보았습니다. URLSession
을 이용하여 요청을 보내고, 받은 데이터를 처리하고 저장하는 방법을 알려드렸습니다. 문제가 발생할 경우 에러 처리 코드도 작성해야합니다. 이를 참고하여 원하는 대로 HTTP 요청을 수행할 수 있습니다.
참고 자료
- Apple Developer Documentation - URLSession
- Apple Developer Documentation - FileManager