2010-12-23 3 views
0

Mon URL est http://sample_domain/sample.json?{ "language" : "en", "category" : "sports"}NSURL renvoie null lors de l'envoi d'une demande de service JSON?

Je convertis ceci en objet NSURL comme ci-dessous.

NSURL *url=[NSURL URLWithString:@"http://sample_domain/sample.json?{ "language" : "en", "category" : "sports"}"]; 

son nul retour à l'objet NSURL, je sais que l'URL doit être au format spécifique de la documentation de pomme, sinon il sera considéré comme un site malveillant et retourne l'objet nul,

ma question est de savoir comment Je passe ces parémètres avec des normes de pomme, de sorte qu'il ne retunera aucun objet.

Merci d'avance.

+0

Pouvez-vous encoder les données différemment? : 'http: // exemple _domain/sample.json? language = fr & category = sports' Comme vous pouvez le voir, c'est toujours la même information mais maintenant ça marche beaucoup plus avec le fonctionnement normal du web au lieu d'insister pour le faire différemment. –

+0

Salut Donald, si j'essaye ceci même dans le navigateur je n'obtiens pas de réponse, mais si j'aime faire ci-dessous NSString * str1 = [@ "\" lan \ ": \" en \ ", \" cat \ ": \" menus \ "" stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; \t NSString * str2 = [NSString stringWithFormat: @ "http: //domaine/test.json? {% @}", Str1]; \t NSURL * sample = [Chaîne URLLigne NSURL: str2]; maintenant je reçois objet url nil, mais si je copier et coller le 'str2' dans le navigateur, je reçois des données de réponse, alors ici je ne devrais pas encoder '{' aussi NSURL ne devrait pas être nul, des idées s'il vous plaît. – mac

Répondre

1

Try

NSURL *url=[NSURL URLWithString:[@"http://sample_domain/sample.json?{ \"language\" : \"en\", \"category\" : \"sports\"}" 
        stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

Je ne sais pas pourquoi « " » caractères ne sont pas échappés dans votre exemple, mais je pense que sans échappe votre code ne doit pas compiler.

Aussi, vous avez besoin (et c'est le problème principal) pour remplacer les caractères qui sont illégaux dans l'URL (par exemple: ':' avec le pourcentage d'échappement correspondant - c'est ce que fait la fonction stringByAddingPercentEscapesUsingEncoding

+0

Salut Donal j'ai essayé d'utiliser le stringByAddingPercentEscapesUsingEncoding, maintenant je reçois l'URL, mais les données de réponse de l'URL est zéro octets, si je copie coller l'URL au même problème de navigateur, puis j'ai remarqué cette méthode encodant le '{' '% 7B' est-ce un problème. – mac

+0

@mac si url est correct le problème que vous n'obtenez pas résultat peut être dans votre serveur - essayez de regarder dans – Vladimir

+0

mon problème ici est que je ne devrais pas encoder '{', '}', dans ma chaîne d'URL, dans mon navigateur lui-même si je code les accolades et envoyer la demande je ne reçois pas de réponse, alors ma question est, comment puis-je obtenir l'objet NSURL valide qui contient '{', '}', s'il vous plaît donnez-moi quelques idées. – mac

Questions connexes