Задача данных URLSession возвращает 0 байт данных в Swift4.2 / iOS12 - PullRequest
0 голосов
/ 15 ноября 2018

Мы обращаемся к URL-адресу PDF из нашего приложения и получаем данные PDF. После преобразования нашей базы кода Swift2.3 в Swift4.2 мы получаем 0 байтов данных в качестве ответа. Но когда мы открываем тот же URL в браузере, он показывает файл PDF. Мы также не получаем никакой ошибки. В базе кода Swift2.3 мы получаем точное значение данных в виде действительных байтов. Есть ли что-то, что нам нужно настроить в URLSession для получения точных байтов данных в Swift4.2.

// url - значение URL сервера PDF

let session:Foundation.URLSession = Foundation.URLSession(configuration:URLSessionConfiguration.default delegate:self delegateQueue:nil)
let task = session.dataTask(with: url, completionHandler:{(data,response,error) in 
    // here data coming as 0 bytes 
})
task.resume()

1 Ответ

0 голосов
/ 28 марта 2019

URLSession.dataTask иногда возвращается без ошибок, но с нулевыми байтами.Мой обходной путь - вместо этого использовать URLSession.downloadTask и использовать содержимое localURL для создания буфера данных.Между прочим, создание строки из этого буфера с использованием кодировки .utf8 завершается неудачно, в то время как .ascii работает нормально.Поэтому я подозреваю, что проблема может заключаться в кодировании содержимого URL.

...