본문 바로가기

옛글/아이폰 프로그래밍

[iOS] Http Reqeust "POST/GET" Response Code

반응형

- (BOOL)requestUrlGetType:(NSString *)url { 

    // URL 접속 초기화

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] 

                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy 

                                                       timeoutInterval:5.0];  

  //GET방식

     [request setHTTPMethod:@"GET"];

   

 // 헤더  추가가 필요하면 아래 메소드를 이용

        [request setValue:헤더Value forHTTPHeaderField:@"HeaderKey"];


    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

    if (connection) { 

        receivedData = [[NSMutableData data] retain]; // 수신할 데이터를 받을 공간을 마련 NSMutableData로 선언

        return YES;

    }

    

    return NO;

}


// POST key

- (BOOL)requestUrlPostType:(NSString *)url withBody:(NSString *)aBody {

    // URL 접속 초기화

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] 

                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy 

                                                       timeoutInterval:3.0]; 


    

    // POST 방식

    [request setHTTPMethod:@"POST"]; 

    

    // 헤더  추가가 필요하면 아래 메소드를 이용

    [request setValue:헤더Value forHTTPHeaderField:@"HeaderKey"];

    

    [request setHTTPBody:[aBody dataUsingEncoding:NSUTF8StringEncoding]]; 

 

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

    if (connection) { 

        receivedData = [[NSMutableData data] retain]; // 수신할 데이터를 받을 공간을 마련

        return YES;

    }

    

    return NO;

}



//값 받아오는 부분

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

{

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

    NSLog(@"return data : %@" , returnString);

    

    //TO DO :: 받은 데이터를 풀어서 Dictionary로 만든 후 안에 메세지를 전달함 

}


- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)aResponse {

    [receivedData setLength:0]; 

    response = aResponse;

}


// 에러 발생 시 처리

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {

    NSLog(@"Error : %@", [error localizedDescription]);

}


따로 네트워크 모듈 담당 클래스를 만든 후 사용하고 싶은 곳에서 instance를 불러와서 사용 

받은 데이터는 Delegate를 통해서 원하는 곳에 반응하는 메서드를 사용.

반응형