iPhone App2011. 9. 19. 11:01

보안이 필요한 데이터를 받고 줘야 할때 (로그인 인증같은거)

GET으로 하게 되면 보안이 치명적일수가 있다.

그래서 Post로 데이터를 받아서 XML을 파싱할려고 했지만

기본 NSXMLParser에는 Get방식으로는 받아서 바로 파싱할수 있으나 Post는 없었다.

그래서 할수 없이 NSURLConnectino을 이용하여 일단 url로부터 Data를 받은후 그 데이터를 NSXMLParser에 넣는 방식으로 처리해야 한다.


//url encoding

NSString *urlString =[NSString stringWithFormat:@"http://주소/MemberSelect?id=%@&pw=%@",_userID.text,_userPW.text];

NSString *escapedUrl = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *xmlUrl =[NSURL URLWithString:escapedUrl];


이렇게 url을 세팅하고


  NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:xmlUrl cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

[request setHTTPMethod:@"POST"];

[NSURLConnection connectionWithRequest:request delegate:self];

post로 보내면


- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

NSString *returnString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

  

NSLog(returnString);


XmlManager* xmlManager= [[XmlManager alloc] init];

NSMutableDictionary *loginInfoData= [xmlManager GetXmlDictDataByData:data elementFile:@"LogInElements.plist"];

}


이 delegate를 통해서 post로 보낸 데이터의 return값을 받을수 있다.


그래서 로그인이 성공하면 성공이라는 메세지를 xml로 보내주게 되고 그밑에 xml을 파싱했다.




Posted by 동동(이재동)