Загрузка текста из UrL - PullRequest
       10

Загрузка текста из UrL

0 голосов
/ 27 апреля 2018

Итак, у меня есть URL-ссылка с текстовым файлом с содержимым, которое я хочу представить в своем приложении. Однако мне очень тяжело загрузить его в мое приложение. Мой код для попытки получить текст в местоположении в настоящее время выглядит следующим образом

   @objc func grabTextFile(){
        let messageURL = URL(string: urlString)
        let sharedSession = URLSession.shared
        let downloadTask: URLSessionDownloadTask = sharedSession.downloadTask(with: messageURL!,completionHandler: {
        (location: URL!, response: URLResponse!, error: NSError!) -> Void in
            var urlContents = ""
            do{
                urlContents = try String(contentsOf: location, encoding: String.Encoding.utf8)
            }catch {
                urlContents =  ""
            }
        print(urlContents)} as! (URL?, URLResponse?, Error?) -> Void)
        downloadTask.resume()
    }

URL-адрес сообщения - это ссылка

var urlString = "18.218.88.192:8080/ActiveHoneypotWeb/logfiles/159.65.139.103-0-commands.txt"

По какой-то причине он падает каждый раз. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 27 апреля 2018

Злоупотребление ! вызывает у вас много проблем. Но основной причиной вашей проблемы является то, что 18.218.88.192:8080/ActiveHoneypotWeb/logfiles/159.65.139.103-0-commands.txt не является действительным URL. Там нет схемы. Добавьте http:// или https://, если необходимо, в начало URL.

Вот как ваш код должен быть написан. Это правильно проверяет на наличие ошибок и нулевых значений.

@objc func grabTextFile(){
    if let messageURL = URL(string: urlString) {
        let sharedSession = URLSession.shared
        let downloadTask = sharedSession.downloadTask(with: messageURL) { (location, response, error) in
            var urlContents = ""
            if let location = location {
                do{
                    urlContents = try String(contentsOf: location, encoding: String.Encoding.utf8)
                }catch {
                    print("Couldn't load string from \(location)")
                }
            } else if let error = error {
                print("Unable to load data: \(error)")
            }
        }
        downloadTask.resume()
    } else {
        print("\(urlString) isn't a valid URL")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...