Swift 3-如何从URL数据请求提交HTTP表单



我在这一点上有点困惑。到目前为止,我已经与要向网站的连接建立了连接,该网站要向网站提交登录表。当我访问网站时,它需要一个用户名和密码,然后让您登录登录网站的登录版本。该站点的源代码包含用于文本输入的位置持有人。位置支架的字符串作为变量存储。我认为我需要在返回的HTTP数据中搜索它。来自登录页面的数据成功返回,印刷输出包含这些占位符。我通过文本字段从用户那里获取用户名和密码,但是我该如何告诉网站将这些用户值插入网站字段并提交表单(基本上是按"登录"(,以便到达登录的网站版本?当我查看与之合作的网站的来源时,代码在JavaScript中。这需要jQuery或JSON解析(获取/发布请求(还是我尝试错误的事情?

import UIKit
class ViewController: UIViewController {
    final var USERNAME_FIELD = "ctl00$ContentPlaceHolder$Username"
    final var PASSWORD_FIELD = "ctl00$ContentPlaceHolder$Password"
    @IBOutlet weak var gobuttom: UIButton!
    @IBOutlet weak var passField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        gobuttom.isEnabled = true
        data_request("https://example.com")

    }

    func data_request(_ url:String)
    {
        let url:NSURL = NSURL(string: url)!
        let session = URLSession.shared
        let request = NSMutableURLRequest(url: url as URL)
        request.httpMethod = "POST"
        let paramString = "data=test"
        request.httpBody = paramString.data(using: String.Encoding.utf8)
        let task = session.dataTask(with: request as URLRequest) {
            (
            data, response, error) in
            guard let _:NSData = data as NSData?, let _:URLResponse = response, error == nil else {
                print("error")
                return
            }
            if let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
            {
                print(dataString)
            }
        }
        task.resume()
    }

    @IBOutlet weak var usernameField: UITextField!
    @IBAction func usernameChanged(_ sender: Any) {
        print("textfield : (String(describing: usernameField.text))")
        gobuttom.isEnabled = true
    }

    @IBAction func goPressed(_ sender: Any) {
        if(usernameField.text != "" && passField.text != ""){
            print("OK")
        }
    }
}

http取消在Swift中是相当复杂的。除非您定期使用Web开发,否则就没有太多有关如何执行此操作的信息。这是有关快速刮擦的出色教程:https://www.youtube.com/watch?v=gscuauskxni

最新更新