swift NSURL得到了一个"无法读取数据"使用https://发送消息

时间:2015-11-06 12:59:50

标签: swift nsurl

我正在尝试按照课程学习iOS,并且他们要求执行以下操作:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    //var string1 = "http://www.google.com"
    //var string1 = "https://www.weather-forecast.com/locations/San-Antonio/forecasts/latest"
    //var url = NSURL(string: string1)
    var url = NSURL(string: "https://google.com")

    print(url)

        if url != nil {

            let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in

                var urlError = false

                if error == nil {

                    var urlContent = NSString(data: data!, encoding: NSUTF8StringEncoding)
                    print(urlContent)


                } else {

                    urlError = true

                }

                if urlError == true {
                    self.showError()
                }
        })

            task.resume()

        } else {

            showError()

    }
}

该应用不会显示任何网页内容,在调试时我发现该网址的对象表示它无法读取数据"

我尝试过使用http和https。我尝试过不同的网站。

我在模拟器的safari中尝试了地址并加载。

有人可以告诉我为什么这不起作用

提前致谢。 gariva

2 个答案:

答案 0 :(得分:4)

你使用了错误的编码。您尝试获取的网页(http://www.google.com/)使用ISO-8859-1

enter image description here

我能够重现你的问题。当我改变编码时,Fetch工作。试试这个:

 var urlContent = NSString(data: data!, encoding: NSISOLatin1StringEncoding)

答案 1 :(得分:-1)

对于显示网页,您应该使用UIWebView元素。这样的事情:

        let url = NSURL(string: "https://google.com")
        let webView = UIWebView(frame: self.view.frame)
        self.view.addSubview(webView)
        webView.loadRequest(NSURLRequest(URL: url!))