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);
}

+ Recent posts