2012-12-17 5 views
2

J'essaye de mettre en place une requête HETP GET à une certaine URL à partir de mon code Objective C. Peu importe ce que je fais, ou l'URL que j'utilise, je reçois l'erreur suivante:Objectif C "Bad URL" erreur

Connection Failed: Error Domain=NSURLErrorDomain 
Code=-1000 "bad URL" UserInfo=0x755c440 
{NSUnderlyingError=0x7561950 "bad URL", NSLocalizedDescription=bad URL} 

Je suis nouveau au développement iOS, donc je ne sais pas si je fais ce droit. J'ai suivi la documentation de la pomme et cherché des réponses dans divers forums et même là, j'ai cette erreur.

Voici mon code:

NSString *url = [NSString stringWithFormat: @"http://example.com/api/%@/%@", str1, str2]; 

NSString *encodedUrl = [url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 

NSLog(@"URL - %@", encodedUrl);    // Checking the url 

NSMutableURLRequest *theRequest= [[NSMutableURLRequest alloc] init]; 

[theRequest setHTTPMethod:@"GET"]; 


[NSMutableURLRequest requestWithURL:[NSURL URLWithString:encodedUrl] 
              cachePolicy:NSURLRequestUseProtocolCachePolicy 
             timeoutInterval:10.0]; 

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self startImmediately:YES]; 

Toute suggestion est la bienvenue.

+0

Peut-être que vous devriez nous montrer ce que le journal de 'encodedUrl' ressemble. –

Répondre

4

Vous n'initialisez pas votre theRequest. Cette ligne ne fait rien si vous n'attribuez pas sa valeur de retour à une variable.

[NSMutableURLRequest requestWithURL:[NSURL URLWithString:encodedUrl] 
              cachePolicy:NSURLRequestUseProtocolCachePolicy 
             timeoutInterval:10.0]; 

C'est le code que vous devez utiliser:

NSString *url = [NSString stringWithFormat: @"http://example.com/api/%@/%@", str1, str2]; 

NSString *encodedUrl = [url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; 

NSLog(@"URL - %@", encodedUrl);    // Checking the url 

NSMutableURLRequest *theRequest= [NSMutableURLRequest requestWithURL:[NSURL URLWithString:encodedUrl] 
                  cachePolicy:NSURLRequestUseProtocolCachePolicy 
                 timeoutInterval:10.0]; 

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self startImmediately:YES]; 
+1

+1, belle prise! –

+0

Bon. Merci. Ça a marché. :) –

+0

@RameezHussain si vous avez votre solution alors pourquoi n'acceptez-vous pas cette réponse? afin que votre question soit close .. –