NSUrlSession
имеет делегата , который должен помочь вам, если вы заинтересованы в получении каждого блока данных.
func urlSession(_ session: URLSession,
dataTask: URLSessionDataTask,
didReceive data: Data)
И этот делегат , если полезны только полученные заголовки.
optional func urlSession(_ session: URLSession,
dataTask: URLSessionDataTask,
didReceive response: URLResponse,
completionHandler: @escaping (URLSession.ResponseDisposition) -> Void)