所以我有一个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()
}
消息网址是此链接
var urlString =" 18.218.88.192:8080 / ActiveHoneypotWeb / logfiles / 159.65.139.103-0-commands.txt"
出于某种原因,它每次都会崩溃。 任何人都可以帮助我吗?
答案 0 :(得分:0)
您滥用!
会导致很多问题。但问题的最终原因是18.218.88.192:8080/ActiveHoneypotWeb/logfiles/159.65.139.103-0-commands.txt
不是有效的网址。没有计划。根据需要将http://
或https://
添加到网址的开头。
以下是您的代码的编写方式。这会正确检查错误和零值。
@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")
}
}