2013-06-14 3 views
0

나는 API에서 데이터를 가져 오기 위해 노력하고 나는이 코드를 가지고 :NSMutableURLRequest 및 JSON -이 연결을 어떻게 완료합니까?

// create the URL we'd like to query 
NSString *urlString = [NSString stringWithFormat:@"https://www.googleapis.com/adsense/v1.1/reports"]; 
NSString *token = auth.accessToken; 
NSMutableURLRequest *myURL = [NSURL URLWithString:urlString]; 
[myURL addValue:token forHTTPHeaderField:@"Authentication"]; 

// we'll receive raw data so we'll create an NSData Object with it 
@@@@@@ 
How would I complete this step? So far I have 
    NSData *myData = 
@@@@@@ 

// now we'll parse our data using NSJSONSerialization 
id myJSON = [NSJSONSerialization JSONObjectWithData:myData options:NSJSONReadingMutableContainers error:nil]; 

// typecast an array and list its contents 
NSArray *jsonArray = (NSArray *)myJSON; 

NSLog(@"%@", jsonArray); 

가 어떻게 9 줄에 연결하는 것입니까?

+0

'[NSURLConnection sendAsynchronousRequest :]'를보세요. –

답변

0

당신이 필요합니다

NSData *myData = [NSURLConnection sendSynchronousRequest:myURL returningResponse:nil error:nil]; 

이 동기 호출입니다. 항상 비동기식 웹콜을 사용하는 것이 좋은 방법이라고 제안 할 것입니다.

1

이 코드를 모두 한 곳에 올리는 것 같습니다 (동기화 네트워크 요청). 이것은 일반적으로 나쁜 생각입니다. 첫 번째 부분 (요청 작성 및 시작)을 한 곳에서 처리하고 요청이 완료되면 호출되는 별도의 메소드/블록에 구문 분석 코드를 넣어야합니다. (비동기 네트워크 네트워크 요청이라고합니다.

+[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]을 살펴보아야합니다. 여기에 NSURLRequest를 전달한 다음 완료 핸들러에서 완료 (구문 분석 등)를 지정할 수 있습니다. 찾고있는 NSData 객체 인 see documentation here을 제공합니다.

네트워크 연결이 여러 개인 경우 다루기 힘들 수 있습니다. AFNetworking과 같은 제 3 자 라이브러리를 살펴보고 지루한 것들을 관리 할 수 ​​있으며 URL 호출과 응답 구문 분석에 집중할 수 있습니다.