Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Чтение данных из URL-адреса с помощью URLSession

Автор вопроса: WedОтветов: 2

Я использую URLSession для извлечения данных из URL-адреса.

func scheduleURLSession() {
    let backgroundConfigObject = URLSessionConfiguration.background(withIdentifier: "myIdentifier...")
    let backgroundSession = URLSession(configuration: backgroundConfigObject, delegate: self, delegateQueue: nil)
    let retrieveTask = backgroundSession.downloadTask(with: URL(string: "https://api.wedsblog.net/v2/index.php?bitcoin&simple")!)
    retrieveTask.resume()
}

Когда загрузка завершена

func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) { }

Будет вызван. Как я могу прочитать содержимое загруженного файла? Является ли ".downloadTask" правильной функцией или мне использовать другую?

  • Вы должны использовать dataTask. Code 24.06.2016
  • Спасибо. С вашей подсказкой я смог найти решение Wed 24.06.2016

swiftswift3

Ответы

Ответ 1 · рейтинг 1 · Wed

Нашел следующее решение:

Реализовано URLSessionDataDelegate

func scheduleURLSession() {
        let backgroundConfigObject = URLSessionConfiguration.background(withIdentifier: "myIdentifier")
        let backgroundSession = URLSession(configuration: backgroundConfigObject, delegate: self, delegateQueue: nil)
        let retrieveTask = backgroundSession.dataTask(with: URL(string: "https://api.wedsblog.net/v2/index.php?bitcoin&simple")!)
        retrieveTask.resume()
}

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
    print(String(data: data, encoding: String.Encoding.utf8)!)
}

Ответ 2 · Milos Mandic

let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url) {(data, response, error) -> Void in { // First check if error is not nil
  // Second check what is status code of your http response
  // Third do with data what you want(parse to objects)
}

Я думаю, это полезно.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы