Passer le nom d'user et le mot de passe dans l'URL pour l'authentification

Je veux passer le nom d'user et le mot de passe dans l'URL (service Web) pour l'authentification d'user qui returnnera vrai et faux. Je fais ceci comme suit:

NSSsortingng *userName = [NSSsortingng ssortingngWithFormat:@"parameterUser=%@",txtUserName]; NSSsortingng *passWord = [NSSsortingng ssortingngWithFormat:@"parameterPass=%@",txtPassword]; NSData *getUserData = [userName dataUsingEncoding:NSASCIISsortingngEncoding allowLossyConversion:YES]; NSSsortingng *getUserLength = [NSSsortingng ssortingngWithFormat:@"%d",[getUserData length]]; NSData *getPassData = [passWord dataUsingEncoding:NSASCIISsortingngEncoding allowLossyConversion:YES]; NSSsortingng *getPassLength = [NSSsortingng ssortingngWithFormat:@"%d",[getPassData length]]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init]; [request setURL:[NSURL URLWithSsortingng:@"http://URL/service1.asmx"]]; [request setHTTPMethod:@"GET"]; 

Maintenant, je voulais savoir Comment puis-je passer mon nom d'user et mot de passe dans cette URL pour faire une request. Quelqu'un pourrait-il suggérer ou donner un exemple de code? Merci.

Essaye ça :-

 NSSsortingng *userName = [NSSsortingng ssortingngWithFormat:@"parameterUser=%@",txtUserName.text]; NSSsortingng *passWord = [NSSsortingng ssortingngWithFormat:@"parameterPass=%@",txtPassword.text]; NSData *getUserData = [userName dataUsingEncoding:NSASCIISsortingngEncoding allowLossyConversion:YES]; NSSsortingng *getUserLength = [NSSsortingng ssortingngWithFormat:@"%d",[getUserData length]]; NSData *getPassData = [passWord dataUsingEncoding:NSASCIISsortingngEncoding allowLossyConversion:YES]; NSSsortingng *getPassLength = [NSSsortingng ssortingngWithFormat:@"%d",[getPassData length]]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init]; [request setURL:[NSURL URLWithSsortingng:[NSSsortingng ssortingngWithFormat:@"http://URL/service1.asmx?%@&%@",userName,passWord]]]; [request setHTTPMethod:@"GET"]; 

J'espère que cela vous aide ..

 NSSsortingng *urlStr = [NSSsortingng ssortingngWithFormat:@"http://URL/service1.asmx?%@&%@",userName,passWord]; [request setURL:[NSURL URLWithSsortingng:urlStr]]; 

Pour améliorer la security, vous pouvez utiliser l' authentification de base Http. Il y a une réponse ici .

Tout d'abord je ne passerais pas un nom d'user et mot de passe à travers dans une URL. Vous devriez le faire en utilisant un post.

 NSURL *url = [NSURL URLWithSsortingng:[NSSsortingng ssortingngWithFormat:@"http://URL/service1.asmx?"]]; NSSsortingng *userName = [NSSsortingng ssortingngWithFormat:@"parameterUser=%@",txtUserName]; NSSsortingng *passWord = [NSSsortingng ssortingngWithFormat:@"parameterPass=%@",txtPassword]; NSSsortingng *postSsortingng = [NSSsortingng ssortingngWithFormat:@"username=%@&password=%@",userName, passWord]; NSData *postData = [NSData dataWithBytes: [postSsortingng UTF8Ssortingng] length: [postSsortingng length]]; //URL Requst Object NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:TIMEOUT]; [request setHTTPMethod:@"POST"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [request setHTTPBody: postData]; 

Ceci est plus sûr que de transmettre des données sensibles dans une URL.

modifier

Pour get la réponse, vous pouvez vérifier cela. NSURLConnection et AppleDoc NSURLConnection

Vous pouvez utiliser plusieurs methods différentes pour gérer la réponse du server. Vous pouvez utiliser NSURLConnectionDelegate

 NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; [self.connection start]; 

avec les callbacks des delegates:

 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSLog(@"didReceiveData"); if (!self.receivedData){ self.receivedData = [NSMutableData data]; } [self.receivedData appendData:data]; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSLog(@"connectionDidFinishLoading"); NSSsortingng *receivedSsortingng = [[NSSsortingng alloc] initWithData:data encoding:NSUTF8SsortingngEncoding]; NSLog(@"receivedSsortingng:%@",receivedSsortingng); } 

Ou vous pouvez également utiliser le bloc NSURLConnection sendAsynchronousRequest

 NSOperationQueue *queue = [[NSOperationQueue alloc] init]; [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { NSSsortingng *receivedSsortingng = [[NSSsortingng alloc] initWithData:data encoding:NSUTF8SsortingngEncoding]; NSLog(@"receivedSsortingng:%@",receivedSsortingng); }];