首页 > 解决方案 > 如何使用 Swift 5 从 URL 获取 HTML 代码

问题描述

如何从日志中的 URL 获取源代码?此代码在日志而不是 HTML 数据上返回错误消息。

你能帮我,让我知道我可以包含/更改什么吗?

谢谢!

import UIKit

class ViewController: UIViewController {

    @IBOutlet var textField: UITextField!

    @IBOutlet var display: UILabel!

    @IBAction func send(_ sender: Any) {


    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        let url = URL (string: "https://www.weather-forecast.com/locations/London/forecasts/latest")!
        let request = NSMutableURLRequest(url:url)
        let task = URLSession.shared.dataTask (with:request as URLRequest) {
            data, response, error in

            if error != nil {
                print (error!)
            } else {
                if let unrappedData = data {
                    let dataString = NSString(data: unrappedData, encoding: String.Encoding.utf8.rawValue)
                    print (dataString!)
                }
            }

        }

        task.resume()
    }


}

标签: iosswiftxcode

解决方案


我们可以htmlURL下面的代码中获取代码,

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        DispatchQueue.global(qos: .background).async {
            // Background Thread
        let myURLString = "https://www.weather-forecast.com/locations/London/forecasts/latest"
        guard let myURL = URL(string: myURLString) else {
            print("Error: \(myURLString) doesn't seem to be a valid URL")
            return
        }

        do {
        let myHTMLString = try String(contentsOf: myURL, encoding: .ascii)
        print("HTML : \(myHTMLString)")
        } catch let error {
        print("Error: \(error)")
        }

            DispatchQueue.main.async {
                // Run UI Updates or call completion block
            }
        }

    }

}

推荐阅读