2011-05-30 2 views
0

J'ai besoin de mon application pour envoyer une requête HTTP à mon serveur, c'est le lien, mais pour une raison quelconque, quand je crée une chaîne NSStringformatat pas toute la chaîne est copiée dans la chaîne,objectif C NSString chaîneformat d'une URL

ceci est mon URL:

http://192.168.50.204:8080/webapi/originate?sofia/internal/408%25192.168.50.204%20'set:effective_caller_id_number=722772408,bridge:sofia/gateway/012smile/[email protected]'%20inline%200545890183%200545890183 

si je l'ai mis dans mon navigateur, il fonctionne très bien.

ce qui est le code:

self.feedURLString = [NSString stringWithFormat:@"http://192.168.50.204:8080/webapi/originate?sofia/internal/%@%25192.168.50.204%20'set:effective_caller_id_number=722772%@,bridge:sofia/gateway/012smile/%@@212.199.220.21'%20inline%20%@%20%@",extention,extention,PhoneNumber,PhoneNumber, PhoneNumber]; 

garder à l'esprit qu'il ya quelques 20% et 25% dans l'URL, peut-être le problème provoque ...

la chaîne que je reçois dans le NSLog est:

feedURLString = http://192.168.50.204:8080/webapi/originate?sofia/internal/408220 'set: effective_caller_id_number = 722772408, pont: sofia/gateway/012smile/[email protected]' 93610576nline2 @ 2 @

Répondre

2

supprimer les 20% et% 25 de la chaîne puis utilisez la commande stringByAddingPercentEscapesUsingEncoding de NSString

string = [sURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
0

Vous avez raison, les% 20 posent presque certainement un problème.

Si vous voulez insérer un symbole% dans le résultat, vous devez écrire %%.

Une autre option que certaines personnes utilisent est de laisser les% s tels quels, mais utilisez stringByReplacingOccurrencesOfString: withString: pour effectuer la substitution.

par exemple:

NSString *str = @"http://{HOST}/{USER}/blah"; 
str = [str stringByReplacingOccurrencesOfString:"{HOST}" withString:hostname]; 
str = [str stringByReplacingOccurrencesOfString:"{USER}" withString:username]; 
0

Essayez d'écrire l'URL avec des caractères normaux au lieu de% 20 et% 25, ​​puis ajoutez dans vos variables et lorsque vous avez la chaîne d'URL complète, utilisez

[feedURLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEndocing]; 

Edit: désolé pour le double, je suppose que la réponse était évidente :)

Questions connexes