2016-09-23 3 views
0

Ich habe einen Codenamen Abteilung in der Datenbank zu aktualisieren .. Ich benutze diese Codierung Code:Wie Wurf ‚&‘ als URL-Parameter senden - raschen

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

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


    let myUrl = URL(string:escapedString!)! 

Es funktioniert sehr gut, aber wenn deptName String enthält diesen Wurf & es funktioniert nicht.

Beispiel1: Anfrage mit deptName = "CIT and Network" senden wird es funktionieren.

Beispiel2: Sendeanfrage mit deptName = "CIT & Network" wird in der Datenbank sein als nur "CIT" jeder Wurf nach & wird übersprungen werden.

Hilfe?

Antwort

1

Verwenden Sie stattdessen URLComponents + URLQueryItem. Es kann verwendet werden, um die Abfrage Teil von strukturierten Eingabe zu kodieren:

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

Vielen Dank, habe ich versucht, dies aber, wenn der Code Reichweite 'var comp' .... Ich bekam: unerwartet gefunden null, während ein optionaler Wert auszupacken. – Zizoo

+0

Ist Ihre ursprüngliche URL korrekt formatiert? – kennytm

+0

Ich habe ein anderes Problem .. ja, es funktioniert, aber in der Datenbank sehe ich "& amp" anstelle von '&' .. print von meiner URL: deptName = CIT% 20% 26% 20Network & id = 3 – Zizoo