2010-08-31 4 views
4

Salut là, j'ai ce codeNSURL ne semble pas vouloir accepter ma querystring

NSLog(@"%@",URLRequestQueryString); 
NSString *sendToServerString = [NSString stringWithFormat:@"http://mydomain.co.uk/req.php%@",URLRequestQueryString]; 
NSURL *sendToServer = [[NSURL alloc] initWithString:sendToServerString]; 
NSLog(@"%@",sendToServer); 
NSLog(@"%@",sendToServerString); 

URLRequestQueryString est juste une norme querystring que j'ai construit tout au long du script.

Le premier NSLog fonctionne très bien et délivre un querystring bon (si je copier et la coller dans un navigateur, la page se charge et fonctionne correctement.

Ceci est également le cas lorsque je sortie sendToServerString il émet correctement la URL avec querystring (que je peux aussi copier et coller dans un navigateur).

Cependant sendToServer ouputs (null). Si je retire le querystring ce sera le domaine sortie correctement et le chemin.

Toute idée pourquoi cela se produit ? Comment puis-je le trier?

Merci.

Répondre

7

NSURL *sendToServer = [NSURL URLWithString: [sendToServerString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
Peut-être que ce que vous recherchez. :)

+0

Cela a fonctionné merci. :) Qu'est-ce que ça fait quand même? ps: acceptera comme une réponse dans un peu - il ne me laissera pas pour encore 4 minutes. –

+0

Pas de soucis! Je ne peux pas dire que je suis sûr de ce qu'il fait, mais je pense qu'il alloue une instance autoreleased de NSURL et ajoute des pourcentages-échappements (tels que% 20 au lieu de "espace") où nécessaire. – Gubb

+0

ah je vois ... brillant - essentiellement comme URL Encoding? :) Merci beaucoup. :) avoir un peu de rep. –

3

Vous avez besoin de voir la référence NSString. Une section intitulée "Utilisation des URL". En vertu de cette section a deux méthode

+0

Merci. :) Que fait replacementParentEscapes? Est-ce que cela inverse le processus? –

+0

Oui, cela supprimera le pourcentage d'encodage d'échappement. – AechoLiu

Questions connexes