2016-07-23 41 views
0

Dies kann eine doppelte Frage sein, aber ich habe alles überprüft und kann keine funktionierende Antwort für iOS9 finden. -stringByAddingPercentEscapesUsingEncoding ist veraltet. Ich muss -stringByAddingPercentEncodingWithAllowedCharactersNSURL: Escape Backslash mit NSCharacterSet

verwenden. Unten ist die Zeichenfolge, die Backslashes maskiert benötigt, damit die API die Sitzung authentifizieren und eine Antwort zurückgeben kann.

NSString *base = @"http://domain.com/interface/?end=imember"; 
NSCharacterSet *set = [NSCharacterSet URLQueryAllowedCharacterSet]; 
NSString *key = [@"&client_key=KOB3N6KX9JXF2MRPO5U.BRFYM7TYVE\/16KIJVXZA6R7H\/1LD1K\/JYIYG7IZP2HA7NUYOVNT3CJG==&token=SGD7E9B29TQ.8HIITZ37XW3GLK5OGLZNLCDM=" stringByAddingPercentEncodingWithAllowedCharacters:set]; 

Die Standard-URL Zeichensätze, die Schrägstriche nicht entkommen, ich habe sie alle ausprobiert:

URLUserAllowedCharacterSet 
URLPasswordAllowedCharacterSet 
URLHostAllowedCharacterSet 
URLPathAllowedCharacterSet 
URLQueryAllowedCharacterSet 
URLFragmentAllowedCharacterSet 

Bitte, wenn jemand könnte helfen, ich bin ziemlich neu für die Entwicklung. Ist es möglich, eine benutzerdefinierte zulässige Menge zu erstellen, die den umgekehrten Schrägstrich enthält?

EDIT:

Dies ist, was die URL sollte wie folgt aussehen:

http://domain.com/interface/?end=imember&client_key=KOB3N6KX9JXF2MRPO5U.BRFYM7TYVE\/16KIJVXZA6R7H\/1LD1K\/JYIYG7IZP2HA7NUYOVNT3CJG==&token=SGD7E9B29TQ.8HIITZ37XW3GLK5OGLZNLCDM= 

Antwort

1

Die exakte Lösung für Sie zu beantworten ist below.I es wurde von Zaph's answer .Das ist die bessere Antwort als andere Antwort.

NSString *unescaped = @"http://domain.com/interface/?end=imember"]; 
NSString *escapedString = [unescaped stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]]; 
NSLog(@"escapedString: %@", escapedString); 

URL Encoding Zeichensätze sind

URLFragmentAllowedCharacterSet "#%<>[\]^`{|} 
URLHostAllowedCharacterSet  "#%/<>[email protected]\^`{|} 
URLPasswordAllowedCharacterSet "#%/:<>[email protected][\]^`{|} 
URLPathAllowedCharacterSet  "#%;<>?[\]^`{|} 
URLQueryAllowedCharacterSet  "#%<>[\]^`{|} 
URLUserAllowedCharacterSet  "#%/:<>[email protected][\]^` 
+0

Als ich URLHostAllowedCharacterSet verwenden dies ist das Ergebnis: – Alexander

+0

'& client_key = KOB3N6KX9JXF2MRPO5U.BRFYYGM7TYVE% 2F16KIJVXZHUA6R7H% 2F1LDD1K% 2FJYIY22G7IZP2HA7NUYOVJWEHNT3CJG == & token = SGD7XXL ... LZNLCDM = 'es hat die umgekehrten Schrägstriche mit Prozentzeichen – Alexander

+0

ersetzt Dank es funktioniert, es war ein falscher Fehler beim Verbinden ... – Alexander