2010-08-14 3 views
0

comment demander URL pour exécuter ou se connecter au serveur .. ce que j'utilisais ne fonctionne pas ..comment demander URL pour se connecter

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@%@",[ConfigDB valueForKey:@"mailURL"], @"?ownerID=", [ConfigDB ownerID], @"&userid=",[ConfigDB userID],@"&pID=",pid,@"&emailAddress=",emailTxtField.text,[ConfigDB valueForKey:@"showEmailFlag"]]]; 


NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:url]; 
+0

Peut vouloir nettoyer le paramètre URLWithString en utilisant stringWithFormat –

Répondre

1

C'est un message très stringWithFormat! La première chose à vérifier est que vous obtenez une URL qui correspond à vos attentes.

Une fois que vous avez un objet et considérer la demande d'URL à l'aide d'un NSURLRequest régulier, il devrait être plus rapide et il ne semble pas que vous avez l'intention de réutiliser cet objet:

// already autoreleased 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

Ensuite, vous besoin de réellement faire la demande. Il y a deux approches ici. Vous utiliserez NSURLDownload si vous souhaitez enregistrer la demande dans un fichier. Il semble que vous cherchiez à faire une requête GET à un serveur de messagerie quelconque, donc vous voulez probablement l'autre approche: NSURLConnection.

NSURLConnection est principalement destiné aux requêtes asynchrones. Vous fournissez un délégué avec certaines méthodes et votre NSURLConnection utilisera ces méthodes pour vous faire savoir quand la communication est faite; s'il y avait des erreurs;

Ajoutez une propriété à la classe de contrôleur de votre vue pour la connexion, ainsi qu'une propriété NSMutableData. Vous commencerez votre connexion avec (en supposant que votre classe actuelle est votre délégué):

// initialize our storage for the file 
self.downloadData = [NSMutableData dataWithLength:1024]; 
// create and start the connection 
self.urlConnection = [NSURLConnection connectionWithRequest:request delegate:self]; 
if(nil == self.urlConnection) { 
    NSLog(@"Couldn't create connection to url %@", url); 
} 

Dans votre code quelque part, probablement votre contrôleur de vue actuel besoin vous en aurez à mettre en œuvre ces méthodes:

-(void) connection:(NSURLConnection*)connection didReceiveData:(NSData*)data { 
    // if you have more than one NSURLConnection in this class, test against the 
    // connection parameter 

    [downloadData appendData:data]; 
} 

-(void) connectionDidFinishLoading:(NSURLConnection*)connection { 
    // download completed successfully, we can do what we like with the downloadData object now 
    // ... 
} 

-(void) connection:(NSURLConnection*)connection didFailWithError:(NSError*)error { 
    // handle failure with the grace of Audrey Hepburn. probably log something, too 
} 
Questions connexes