2012-01-24 18 views
0

私はユーザーが有効かどうかを確認するためにREST APIをヒットしようとしています。私はconnectionDidFinishLoadingの実行を知っていますが、私はどのように応答(XML)を確認するか分からない。お知らせ下さい。xml post loading XML応答

signIn機能は、通常、あなたがNSXMLParserを使用するXMLを解析する

- (IBAction)signIn:(id)sender; 
{ 
    [emailError setHidden:YES]; 

    if([emailAddressTxt text] && [passwordTxt text]) { 
     // send user/pass to server for validation 
     if([self NSStringIsValidEmail:[emailAddressTxt text]]) { 
      NSString *post = [NSString stringWithFormat:@"Email=%@&Password=%@", emailAddressTxt.text, passwordTxt.text]; 
      NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

      NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; 

      NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
      [request setURL:[NSURL URLWithString:@"http://www.mySite.com/validate.php"]]; 
      [request setHTTPMethod:@"POST"]; 
      [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
      [request setHTTPBody:postData]; 
      [NSURLConnection connectionWithRequest:request delegate:self]; 
     } 
    } else { 
     // give error dialogue 
     [emailError setText:@"User not found"]; 
     [emailError setHidden:NO]; 
    } 
} 

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 
    //[signInData setLength:0]; 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)d { 
    //[signInData appendData:d]; 
    // updated to: 
    signInData = (NSMutableData *)d; 
} 

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { 
    // Fail.. 
    [emailError setText:@"Connection Error"]; 
    [emailError setHidden:NO]; 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection { 
    NSString *responseText = [[NSString alloc] initWithData:signInData encoding:NSUTF8StringEncoding]; 

    NSLog(@"%@", @"check"); 
    NSLog(@"%@", responseText); 
} 

// an example response would be: 
// <string xmlns="http://thedomain.com/">invalid login</string> 
+0

xml応答を解析する方法を尋ねていますか? – cpjolicoeur

答えて

2

ローリングボールを取得しますが、文字列の応答で「<string xmlns="http://thedomain.com/">invalid login</string>」私は、有効なログインが次のようになりますことを仮定しているような単純な:その場合は

<string xmlns="http://thedomain.com/">valid login</string>は、」あなたは、単に文字列@"valid login"を含む応答を探すことができますが、@"invalid login"

012が含まれていません
if (([responseText rangeOfString:@"invalid login"].location == NSNotFound) && ([responseText rangeOfString:@"valid login"].location != NSNotFound)){ 
    // Congrats valid 
} 

成功した応答が "<string xmlns="http://thedomain.com/">successful login</string>"であれば、ifステートメントは従いやすくなります。

if ([responseText rangeOfString:@"successful login"].location != NSNotFound){ 
    // Congrats valid 
} 
+0

私はXMLをどのようにロードしているかを完全に変更しましたが、この解決策は私の "単純な"解析に役立ちます。 – Jacksonkr