2016-06-16 12 views
0

ich hier schon viele, viele Beispiele gefunden versucht, aber keiner von dann funktioniert ... die URL immer gleich Null ist ..Wie kodieren richtig URL String

hier den String: http://www.tst.com.br/?Nr=OR(product.productType.displayName:Acess%C3%B3rios,product.productType.displayName:Outros%20Produtos)&Ns=sku.sortPriority|0&mi=hm_ger__mntop__FUT-outros_&cm_re=mntop-_-ger_-_-_FUT-outros_____&fc=menu&test=test

  let urlSet = "http://www.tst.com.br/?Nr=OR(product.productType.displayName:Acess%C3%B3rios,product.productType.displayName:Outros%20Produtos)&Ns=sku.sortPriority|0&mi=hm_ger__mntop__FUT-outros_&cm_re=mntop-_-ger_-_-_FUT-outros_____&fc=menu&test=test" 
     guard let url = NSURL(string: urlSet ?? "") else { 
      return 
     } 

Sollte ich entziehe und kodiere dann wieder?

Bereits diese Solution versucht, aber nicht arbeiten, ist die NSURL Initialisierung null

+0

Sie müssen 'http: //' URLs explizit zulassen (im Gegensatz zu 'https: //'). Hast du das gemacht? Und erhalten Sie Fehlermeldungen? – Ike10

+0

Sicher, arbeitet eine andere Anfragen in Ordnung, aber nur einige, mit dieser Codierung nicht funktioniert –

+0

Ich glaube nicht, das Initialisierer für 'NSURL' eine optionale zurückgibt. Versuchen Sie, die Guard-Anweisung zu entfernen. Ihr 'nil' Koaleszieren kann den Wert auf eine leere Zeichenfolge setzen. – Ike10

Antwort

0

immer Dieser Code mein Problem gelöst:

extension String { 
    func encodeString() -> String { 
     let URLCombinedCharacterSet = NSMutableCharacterSet() 
     URLCombinedCharacterSet.formUnionWithCharacterSet(.URLQueryAllowedCharacterSet()) 
     URLCombinedCharacterSet.addCharactersInString("@#&=*+-_.,:!?()/~'%") 
     let urlEncoded = self.stringByAddingPercentEncodingWithAllowedCharacters(URLCombinedCharacterSet) 
     return urlEncoded ?? self 
    } 
} 
0

| ist kein gültiges Zeichen in der URL-Zeichenfolge. Sie müssen es entkommen:

let query = "Nr=OR(product.productType.displayName:Acess%C3%B3rios,product.productType.displayName:Outros%20Produtos)&Ns=sku.sortPriority|0&mi=hm_ger__mntop__FUT-outros_&cm_re=mntop-_-ger_-_-_FUT-outros_____&fc=menu&test=test" 

let components = NSURLComponents() 
components.scheme = "http" 
components.host = "www.tst.com.br" 
components.path = "/" 
components.query = query.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet()) 

let url = components.URL! 
Verwandte Themen