J'essaye d'analyser le contenu HTML en utilisant HTMLParser et avec l'aide de celui-ci j'essaie de lancer UIAlertView, l'application fonctionne bien mais n'initie pas UIAlertView.UIAlertView n'est pas initié
Voici le code:
- (IBAction) loginButton: (id) sender
{
// Create the username and password string.
// username and password are the username and password to login with
NSString *postString = [[NSString alloc] initWithFormat:@"username=%@&password=%@",userName, password];
// Package the string in an NSData object
NSData *requestData = [postString dataUsingEncoding:NSASCIIStringEncoding];
// Create the URL request
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString:@"http://localhost/dologin.php"]]; // create the URL request
[request setHTTPMethod: @"POST"]; // you're sending POST data
[request setHTTPBody: requestData]; // apply the post data to be sent
// Call the URL
NSURLResponse *response; // holds the response from the server
NSError *error; // holds any errors
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&error]; // call the URL
/* If the response from the server is a web page, dataReturned will hold the string of the HTML returned. */
HTMLParser * parser = [[HTMLParser alloc] initWithData:returnData error:&error];
HTMLNode * bodyNode = [parser body];
NSArray * errorNodes = [bodyNode findChildTags:@"errorbox"];
for (HTMLNode * errorNode in errorNodes) {
if ([[errorNode getAttributeNamed:@"div class"] isEqualToString:@"errorbox"]){
alertWithOkButton = [[UIAlertView alloc] initWithTitle:@"Status..." message:[NSString stringWithFormat:@"Invalid Access Info, try again"] delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alertWithOkButton show];
[alertWithOkButton release];
//Login Failed
}
}
NSArray * spanNodes = [bodyNode findChildTags:@"clientarea.php?action=masspay"];
for (HTMLNode * spanNode in spanNodes) {
if ([[spanNode getAttributeNamed:@"action"] isEqualToString:@"clientarea.php?action=masspay"]){
alertWithOkButton = [[UIAlertView alloc] initWithTitle:@"Status..." message:[NSString stringWithFormat:@"Login Accepted, redirecting to the main app screen. :)"] delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:@"Go",nil];
[alertWithOkButton show];
[alertWithOkButton release]; //Login Success
}
}
[parser release];
}
Merci, le problème était en erreurNode. Les données renvoyées ne correspondaient pas car j'ai utilisé une mauvaise balise. : P –