caTea 블로그

NSURLSession 간편하게 사용하기 본문

macos | ios

NSURLSession 간편하게 사용하기

ZaRas 2016. 9. 4. 13:32
반응형

NSURLConnection 이 deprecate되면서 이걸사용해야한다


간단하게 사용하는 코드다



//헤더및 데이터 설정


NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    [request setURL:[NSURL URLWithString: @"요청URL"];

    [request setHTTPMethod:@"POST"];

    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];

    if( [APPDELEGATE.kUserAgent length] > 0 ){

        [request setValue:@"유저에이전트" forHTTPHeaderField:@"User-Agent"];

    }

    

   [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

    [request setHTTPBody:postData];



//실제로 통신부분


NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];

    sessionConfiguration.timeoutIntervalForRequest = self.timeoutTime;

    session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:nil delegateQueue:nil];

    

    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:

                                  ^(NSData *data, NSURLResponse *response, NSError *error) {

                                      

                                      if (error) {

                                         

                                          LOG(@"fail Networking...");

                                          return;

                                      }

                                      

                                      if ([response isKindOfClass:[NSHTTPURLResponse class]]) {

                                          NSLog(@"Response HTTP Status code: %ld\n", (long)[(NSHTTPURLResponse *)response statusCode]);

                                          NSLog(@"Response HTTP Headers:\n%@\n", [(NSHTTPURLResponse *)response allHeaderFields]);

                                          NSLog(@"Response HTTP Headers:\n%@\n", [(NSHTTPURLResponse *)response textEncodingName]);

                                      }

                                     

                                      

                                  }];

    [task resume];

728x90