iOS에서 통신을 하는 방법은 몇가지가 있는데 가장 간편하게 사용되는 방법은 NSURLConnection을 이용해 동기적으로 통신하는 것이다. 가장 심플하다
NSURLConnection Delegate를 이용하면 다양한 방법으로 통신을 컨트롤할 수 있긴하나 , 일단 내가 최근에 사용했던 가장 가벼운 방법부터 정리해본다. 기본적으로 POST방식으로 보내는 방법을 기준으로 설명한다.
// NSURLRequest 객체 생성 // 통신을 Request(요청)하는 객체를 만든다 NSMutableURLRequest* request = [[NSMutableURLRequest alloc]init]; // POST 내용을 작성 NSString *post = [NSString stringWithFormat:@"Post로 보낼내용"]; NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSString *postLength = [NSString stringWithFormat:@"%d", (int)[postData length]]; // Request 객체에 들어갈 내용들 설정 [request setURL:[NSURL URLWithString:@"http://www.urURL.co.kr"]]; [request setHTTPMethod:@"POST"]; [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setValue:@"Mozilla/4.0 (compatible;)" forHTTPHeaderField:@"User-Agent"]; [request setHTTPBody:postData]; [request setTimeoutInterval:30.0]; // 커넥션 에러를 다룰 객체를 생성 NSError *error = nil; // NSURLConnection 객체를 이용해 동기적으로 보냄 (Response객체는 사용하지 않음) // 돌아온 값은 NSData형으로 받는다 NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:Nil error:&error]; if(data == NULL){ // 통신 실패 ! NSLog(@"통신 실패 ! : %@",[error LocalizedDescription]); } else{ // 통신 성공 // 받아온 정보가 스트링인 경우 NSString *returnStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"Return String : %@",returnStr); }
'DEV > iOS' 카테고리의 다른 글
하이브리드 앱 개발 시 UIWebView / WKWebView에서의 처리 (0) | 2017.10.18 |
---|---|
ScrollView와 PageControl을 이용한 페이징 처리 (0) | 2014.05.06 |
NSThread를 통한 데이터 처리와 화면 제어 팁 (0) | 2014.03.09 |
UIAlertView 간단한 함수로 만들어 두기 (0) | 2014.03.09 |
NSString을 파일로 읽고 쓰기 (0) | 2014.03.09 |