如何发送垃圾'&'作为url参数 - swift

时间:2016-09-23 17:58:40

标签: ios swift

我有一个代码来更新数据库中部门的名称..我使用这个编码代码:

        let myurlstring="http:example/updateDepartment.php?deptName="+"\(deptName)"+"&id="+"\(deptID)"

    let escapedString = myurlstring.addingPercentEncoding(withAllowedCharacters:NSCharacterSet.urlQueryAllowed)


    let myUrl = URL(string:escapedString!)!

效果非常好,但当deptName字符串包含此垃圾&时,它无效。

example1:使用deptName = "CIT and Network"发送请求它会起作用。

示例2:deptName = "CIT & Network"的发送请求将在数据库中仅作为“CIT”,将跳过&之后的任何垃圾。

任何帮助?

1 个答案:

答案 0 :(得分:1)

使用URLComponents + URLQueryItem代替。它可用于从结构化输入中编码查询部分:

var comp = URLComponents(string: "http://example.com")!
comp.path = "/some path to/update.php"
comp.queryItems = [
    URLQueryItem(name: "deptName", value: "CIT & Network"),
    URLQueryItem(name: "id", value: "123456"),
]

let url = comp.url!
print(url)
// http://example.com/some%20path%20to/update.php?deptName=CIT%20%26%20Network&id=123456