ios - 如何将输入数据的文本字段传递到 swift 上的 url

标签 ios swift url textfield

我创建了两个 UITextField

@IBOutlet weak var txtUsername: UITextField!
@IBOutlet weak var txtUserpassword: UITextField!

并设置用户名和密码来存储数据

let username = txtUsername.text
let userpassword = txtUserpassword.text

另外,将数据传递到 URL

let urlAsString = "http://lifewinner2015.dlinkddns.com/SERVER/user?function=login&username=\(username)&password=\(userpassword)"

但是\(用户名)\(用户密码)可能有错误,Xcode无法运行。

可以帮我解决这个问题吗?

最佳答案

请注意,每个 URL 组件都需要正确转义。转义很容易出错,而且很容易出错。

因此,您应该使用 NSURLComponents 创建一个 URL,该 URL 也会自动为您转义 URL 的不同组件:

let urlString = "http://lifewinner2015.dlinkddns.com/SERVER/user"

注意:上面的 URL 还包含几个可能需要转义的组件。如果您确定对于给定的字符串文字不需要转义,您可以尝试按上面的方式设置 URL 字符串。否则单独设置每个组件。

guard let urlComponents = NSURLComponents(string: urlString) else {
    throw MyError.CouldNotCreateURLFromString(string: urlString)
}

然后创建url查询组件:

let queryItems: [NSURLQueryItem] = [
    NSURLQueryItem(name: "function", value: "login"),
    NSURLQueryItem(name: "username", value: username),
    NSURLQueryItem(name: "password", value: userpassword)
]

并为其分配 url 组件对象:

urlComponents.queryItems = queryItems

获取 URL 现在不应该抛出异常,但无论如何:

guard let url = urlComponents.URL else {
    throw MyError.CouldNotCreateURL
}

关于ios - 如何将输入数据的文本字段传递到 swift 上的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35874991/

相关文章:

ios - 找到可用的网格位置

ios - Apple 是否为 SIRI 提供 API?

ios - NSOperationQueue 如何等待两个异步操作?

swift - NSURL fatal error

swift - 加载嵌套数据的效率

iphone - objective-c : i want the automatic memory management of properties, 但无法从其他类访问

objective-c - Downpicker 没有出现在 UITableView 中

iphone - 将 URL(作为字符串)添加到数组时出现问题

python - Django 2.0 的 Django 奥斯卡 URL?

ios - iOS 中安装了 URL Scheme