Что такое HTTP body в iOS-разработке?

«Что такое HTTP body в iOS-разработке?» — вопрос из категории SwiftUI, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP body — это часть HTTP-запроса или ответа, содержащая передаваемые данные (например, JSON, XML, form-data). В iOS для работы с телом запроса используются URLRequest и URLSession.

Основное использование

let url = URL(string: "https://api.example.com/data")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

let json: [String: Any] = ["key": "value"]
request.httpBody = try? JSONSerialization.data(withJSONObject: json)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    // Обработка ответа
}
task.resume()

Ключевые моменты

  • Формат определяется заголовком Content-Type:
    • application/json — JSON-данные
    • application/x-www-form-urlencoded — форма URL-encoded
    • multipart/form-data — загрузка файлов
  • GET-запросы обычно не используют body (данные передаются в URL-параметрах)
  • Большие данные можно передавать через InputStream для оптимизации памяти
  • Чтение ответа: данные из body ответа доступны в completion handler URLSession.dataTask