0

私はアプリのログインページを作っています。クレデンシャルの詳細はDBに格納されます。私はASP.Netミドルウェアサービスを作っています。私のデータがObjective CのPostメソッドでRequestBodyに添付されていることを確認するには

は今、以前に私は.Iは、POSTメソッドをしたい(私は今たくない)URL文字列に詳細を追加するリクエストを送信するためにGETメソッドをしていました。だから私は1つを見つけました非常に良いlink、それは私はそれが正常に行われたかどうかは確信していませんまたは私のASP.netの同僚はが動作していないのでいくつかの間違いをしました

ユーザー名とパスワードすなわち資格情報が正しい場合はサービスが私にこの

<result> 
    success 
</result> 

または失敗ていない場合のようなXMLを返します。

だからいずれかは、このコードが正しいかどうかということを教えてくださいそうでない場合はどのような間違いです....おかげであなたの時間をすることができます。

コード: -

@class FirstViewController; 
@interface TestLoginViewController : UIViewController<UITextFieldDelegate,NSXMLParserDelegate>{ 

    IBOutlet UITextField *txtUserName,*txtPassword; 
    IBOutlet UIButton *submitDetails; 

    FirstViewController *viewController; 
    NSString *currentElement,*status; 
    NSString *loginName,*password; 
} 

@property (nonatomic,retain) IBOutlet UITextField *txtUserName; 
@property (nonatomic,retain) IBOutlet UITextField *txtPassword; 

@property (retain) NSString *loginName; 
@property (retain) NSString *password; 
@property (retain) NSString *status; 

-(IBAction)onTapSubmit:(id)sender; 
-(IBAction)onTapReset; 

@end 


-(IBAction)onTapSubmit:(id)sender{ 
    NSLog(@"UserName :- %@",txtUserName.text); 
    NSLog(@"Password :- %@",txtPassword.text); 
    if(![txtUserName.text isEqualToString:@""] && ![txtPassword.text isEqualToString:@""]){ 

    //  NSString *uName = txtUserName.text; 
    //  NSString *uPass = txtPassword.text; 

    // NSString *post = [NSString stringWithFormat:@"username=%@&password=%@",[self urlEncodeValue:uName],[self urlEncodeValue:uPass]]; 


     NSString *temp1 = [@"username=" stringByAppendingString:txtUserName.text]; 
     NSString *temp2 = [temp1 stringByAppendingString:@"&password="]; 
     NSString *post = [temp2 stringByAppendingString:txtPassword.text]; 

     NSLog(@"Post String ==== %@",post); 

     NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

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

     NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
     [request setURL:[NSURL URLWithString:@"http://iphonewebserver.wsisites.net/Default.aspx"]]; 
     [request setHTTPMethod:@"POST"]; 
     [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
     [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
     [request setHTTPBody:postData]; 
     NSXMLParser *parser= [[NSXMLParser alloc]initWithData:postData]; 

**EDITED :-** 


NSURLResponse *response; 
     NSError *error; 
     NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
     NSLog(@"Succeeded! Received %d bytes of data",[urlData length]); 
     NSString *outputdata = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding]; 
     NSLog(@"%@", outputdata); 

**//Nslog output 

Succeeded! Received 39 bytes of data 
2011-12-14 21:28:21.461 TestLogin[1094:207] <result><login>success</login></result> 
2011-12-14 21:28:21.463 TestLogin[1094:207] Status======= (null)** 

    /*  
     NSMutableString *strURL=[[NSMutableString alloc] init]; 
     [strURL appendFormat:@"http://iphonewebserver.wsisites.net/Default.aspx?username="]; 
     [strURL appendFormat:@"%@",txtUserName.text]; 
     [strURL appendFormat:@"&password="]; 
     [strURL appendFormat:@"%@",txtPassword.text]; 

     NSLog(@"urlformed:-%@",strURL); 

     NSURL *url= [NSURL URLWithString:strURL]; 

     NSData *data= [NSData dataWithContentsOfURL:url]; 
     [strURL release]; 

     NSXMLParser *parser= [[NSXMLParser alloc]initWithData:data]; 
    */ 

     parser.delegate=self; 
     [parser parse]; 
     [parser release]; 

//  if([self.status isEqualToString:@"success"]){ 
     if(self.status){ 
      viewController = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil]; 
      [self presentModalViewController:viewController animated:YES]; 
     } 
     else { 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Failed !!! " message:@"Please Enter Correct Username and Password" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [alert show]; 
      [alert release]; 
      NSLog(@"%@",self.status); 
     } 
    } 
    else{ 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Failed !!! " message:@"Please Enter the Username and Password" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK",nil]; 
     [alert show]; 
     [alert release]; 

    } 

} 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if(buttonIndex == 0) 
    { 
     [self onTapReset]; 
    } 

} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    txtUserName.delegate = self; 
    txtPassword.delegate = self; 
    txtUserName.text = @"admin"; 
    txtPassword.text = @"pass"; 
} 


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{ 

    currentElement = elementName; 
    if([elementName isEqualToString:@"result"]) { 
     NSLog(@"%@",currentElement); 
    } 
} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ 
    if([currentElement isEqualToString:@"login"]){ 
     self.status=[NSString stringWithFormat:@"%@",string]; 
     NSLog(@"%@",self.status); 
    } 
} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{ 

    [email protected]"";//required to reset current element 

} 

@end 

私が投稿する行方不明ですどちらかといえば教えてください。 :))

答えて

0

最終的に私は....通常、私は非常に基本的な間違いをしていたように私のコードは、作品だ私は、パーサー正しいデータを解析するために与えていませんでした....これは、すべての罰金と良い動作するコードです。

CODE: -

@class FirstViewController; 
@interface TestLoginViewController : UIViewController<UITextFieldDelegate,NSXMLParserDelegate>{ 

    IBOutlet UITextField *txtUserName,*txtPassword; 
    IBOutlet UIButton *submitDetails; 

    FirstViewController *viewController; 
    NSString *currentElement,*status; 
    NSString *loginName,*password; 
} 

@property (nonatomic,retain) IBOutlet UITextField *txtUserName; 
@property (nonatomic,retain) IBOutlet UITextField *txtPassword; 

@property (retain) NSString *loginName; 
@property (retain) NSString *password; 
@property (retain) NSString *status; 

-(IBAction)onTapSubmit:(id)sender; 
-(IBAction)onTapReset; 

@end 


-(IBAction)onTapSubmit:(id)sender{ 
    NSLog(@"UserName :- %@",txtUserName.text); 
    NSLog(@"Password :- %@",txtPassword.text); 
    if(![txtUserName.text isEqualToString:@""] && ![txtPassword.text isEqualToString:@""]){ 

     NSString *temp1 = [@"username=" stringByAppendingString:txtUserName.text]; 
     NSString *temp2 = [temp1 stringByAppendingString:@"&password="]; 
     NSString *post = [temp2 stringByAppendingString:txtPassword.text]; 

     NSLog(@"Post String ==== %@",post); 

     NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

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

     NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
     [request setURL:[NSURL URLWithString:@"http://iphonewebserver.wsisites.net/Default.aspx"]]; 
     [request setHTTPMethod:@"POST"]; 
     [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
     [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
     [request setHTTPBody:postData]; 

NSURLResponse *response; 
     NSError *error; 
     NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
     NSLog(@"Succeeded! Received %d bytes of data",[urlData length]); 
     NSString *outputdata = [[NSString alloc] initWithData:urlData encoding:NSASCIIStringEncoding]; 
     NSLog(@"%@", outputdata); 
NSXMLParser *parser= [[NSXMLParser alloc]initWithData:urlData]; 

     parser.delegate=self; 
     [parser parse]; 
     [parser release]; 

     if([self.status isEqualToString:@"success"]){ 
      viewController = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil]; 
      [self presentModalViewController:viewController animated:YES]; 
     } 
     else { 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Failed !!! " message:@"Please Enter Correct Username and Password" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [alert show]; 
      [alert release]; 
      NSLog(@"%@",self.status); 
     } 
    } 
    else{ 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login Failed !!! " message:@"Please Enter the Username and Password" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK",nil]; 
     [alert show]; 
     [alert release]; 

    } 

} 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if(buttonIndex == 0) 
    { 
     [self onTapReset]; 
    } 

} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    txtUserName.delegate = self; 
    txtPassword.delegate = self; 
    txtUserName.text = @"admin"; 
    txtPassword.text = @"pass"; 
} 


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{ 

    currentElement = elementName; 
    if([elementName isEqualToString:@"result"]) { 
     NSLog(@"%@",currentElement); 
    } 
} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ 
    if([currentElement isEqualToString:@"login"]){ 
     self.status=[NSString stringWithFormat:@"%@",string]; 
     NSLog(@"%@",self.status); 
    } 
} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{ 

    [email protected]"";//required to reset current element 

} 

@end 

ように、コードを楽しみ、楽しみを持っている.... :))

1

あなたは、要求を作成しているが、あなたはどこにでもそれを送信していません。それをサーバに送信し、それのデリゲートに戻って結果を報告します -
はあなたの要求を使用してNSURLConnectionオブジェクトをインスタンス化します。

+0

私も......私もXMLを受けたが午前ことを行っています[parser parse]メソッドが解析されていません。私のNSLOGでは、結果は成功となっています....どうすればいいですか? – mAc

関連する問題