2013-08-25 4 views
2

iOS 플랫폼 용 RestKit 프레임 워크 버전 0.20.x에서 많은 주요 변경 사항을 보았습니다. 지금까지 웹에서 찾지 못한 한 가지 방법은 RestKit의 새 버전으로 이진 파일을 다운로드하는 방법의 예입니다.RestKit 0.20.x로 이진 파일 다운로드

JSON 객체를 REST 서비스로 보내야하고 이진 파일을 반환해야합니다. 간단하게 보이 겠지만 RestKit은 JSON (그리고 XML과 같은 일반적인 인터넷 컨텐츠 유형)이 다시 돌아올 것으로 기대합니다. JSON 개체는 본질적으로 어떤 이미지를 보내고 받아야 하는지를 서비스에 알려주는 요청 개체입니다.

답변

7

다행히 AFNNetworking 프레임 워크를 사용하여이 작업을 돕고 RestKit 시리얼 라이저를 사용하여 필요한 요청 개체를 생성했습니다.

MyRequestClass *request = // ... get my request class instance 
RKObjectManager *manager = [RKObjectManager sharedManager]; 
NSMutableURLRequest *downloadRequest = [manager requestWithObject:request method:RKRequestMethodPOST path:ROUTE_URL_MY_SERVICE parameters:nil]; 
AFHTTPRequestOperation *requestOperation = [[AFImageRequestOperation alloc] initWithRequest:downloadRequest]; 

[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    // Use my success callback with the binary data and MIME type string 
    callback(operation.responseData, operation.response.MIMEType, nil); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    // Error callback 
    callback(nil, nil, error); 
}]; 
[manager.HTTPClient enqueueHTTPRequestOperation:requestOperation]; 
+0

나는 최신 restkit를 사용하여 간단한 미리보기 이미지를 다운로드하는 발견 코드, –

+0

:-) 덕분에 최고의 조각 나는 MyResponseClass에 매핑 할 수 있습니다 어떻게 JSON을받은 경우? – giuseppe

+0

바이너리를 받기 위해 JSON을 보내는 것입니다. 응답 객체 (JSON 형식)를 클래스에 매핑하려면 POST 호출 또는 기타를 만들고 Restkit이 매핑을 수행하도록 'RKObjectManager'를 사용해야합니다. restkit 웹 사이트에는이를 수행하는 몇 가지 예가 있습니다 (https://github.com/RestKit/RestKit/). –