2016-09-23 55 views
0

我有一个代码,数据库中的更新部门的名字。我用这个编码代码:如何发送垃圾“和”作为URL参数 - 迅速

 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

改为使用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 
+0

谢谢,我尝试这样做,但是当代码达到'VAR comp' ....我:意外发现零而展开的可选值。 – Zizoo

+0

您的初始网址应该格式正确吗? – kennytm

+0

我得到了另一个问题..是的,它的工作原理,但在数据库中我看到“&amp”而不是'&'..打印我的url:deptName = CIT%20%26%20Network&id = 3 – Zizoo