2016-09-23 54 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