2016-07-23 2 views
0

Cela peut être une question en double, mais j'ai vérifié partout et je ne trouve pas de réponse fonctionnelle pour iOS9. -stringByAddingPercentEscapesUsingEncoding a été déprécié. Je dois utiliser -stringByAddingPercentEncodingWithAllowedCharactersNSURL: Échap de barre oblique inverse à l'aide de NSCharacterSet

Ci-dessous se trouve la chaîne qui doit contenir les barres obliques inversées afin que l'API puisse authentifier la session et renvoyer une réponse.

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]; 

L'URL standard Les jeux de caractères ne désertent pas les antislashs, je les ai tout essayé:

URLUserAllowedCharacterSet 
URLPasswordAllowedCharacterSet 
URLHostAllowedCharacterSet 
URLPathAllowedCharacterSet 
URLQueryAllowedCharacterSet 
URLFragmentAllowedCharacterSet 

S'il vous plaît si quelqu'un pourrait aider, je suis assez nouveau au développement. Est-il possible de créer un ensemble autorisé personnalisé qui inclut le backslash?

EDIT:

C'est ce que l'URL doit ressembler à:

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

Répondre

1

La solution exacte pour votre réponse est below.I il a obtenu de Zaph's answer .que est la meilleure réponse que d'autre réponse.

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

URL d'encodage des jeux de caractères sont

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

Lorsque j'utilise URLHostAllowedCharacterSet ceci est le résultat: – Alexander

+0

'& client_key = KOB3N6KX9JXF2MRPO5U.BRFYYGM7TYVE% 2F16KIJVXZHUA6R7H% 2F1LDD1K% 2FJYIY22G7IZP2HA7NUYOVJWEHNT3CJG == & token = SGD7XXL ... LZNLCDM = 'il a remplacé les barres obliques inversées avec signe de pourcentage – Alexander

+0

Merci cela fonctionne, c'était une fausse erreur lors de la connexion ... – Alexander