2013-02-14 3 views
4

plist를 반환하는 WS가 있습니다.
Restkit을 사용하고 있으며 응답을 매핑하고 싶습니다.Restkit 텍스트/xml 응답

sharedInstance.manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:ROOT_URL]]; 

내가 텍스트/XML 동의 :

그래서 처음 나는이처럼 내 ObjectManager을 initilialize

[[RKObjectManager sharedManager] setAcceptHeaderWithMIMEType:RKMIMETypeTextXML]; 

을 그리고 난 내 요청 실행 : 내가 할 마지막으로

NSMutableURLRequest *request = [[RKObjectManager sharedManager] requestWithObject:nil method:RKRequestMethodPOST path:@"/foo/foo" parameters:nil]; 
RKManagedObjectRequestOperation *operation = [[RKObjectManager sharedManager] managedObjectRequestOperationWithRequest:request managedObjectContext:[BddManager sharedInstance].manager.managedObjectStore.mainQueueManagedObjectContext success:^(RKObjectRequestOperation *operation, RKMappingResult *result) { 
    NSLog(@"Loading mapping result: %d", result.count); 
} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    NSLog(@"Fail!"); 
}]; 
[operation start]; 

을 이 오류 :

NSLocalizedDescription=Expected content type {(
"application/x-www-form-urlencoded", 
"application/json" 
)}, got text/xml, 

내가 뭘 잘못하고 있니?

+0

어떤 RestKit 버전을 사용하고 있습니까? v0.10 또는 v.20? – flashfabrixx

+0

마지막 하나 : 0.20.0rc1 –

답변

10

RestKit의 0.20.0rc1 예정이다,하지만 당신은 여기에서 찾을 수 있습니다 RKXMLReaderSerialization. 당신이 RestKit를 초기화 곳

pod 'RKXMLReaderSerialization', :git => 'https://github.com/RestKit/RKXMLReaderSerialization.git', :branch => 'master' 

가져 오기 헤더를 (또는 프로젝트에 소스 파일을 추가) :

cocoapods를 통해 설치합니다.

#import "RKXMLReaderSerialization.h" 

마지막으로, RestKit와 직렬화 클래스를 등록합니다. 개체 관리자를 초기화하고 accept 헤더를 설정하기 전에 이것을 삽입하십시오.

sharedInstance.manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:ROOT_URL]]; 
[RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:@"application/xml"]; 
[[RKObjectManager sharedManager] setAcceptHeaderWithMIMEType:RKMIMETypeTextXML]; 
+0

이것은 받아 들여진 대답이어야한다. 그것은 매력처럼 작동한다. – Donnit

0

1)로드 프로세스 후 직렬화되는 데이터를 처리하는 방법을 RKObjectManager에 알려줘야합니다.

[objectManager setRequestSerializationMIMEType:RKMIMETypeTextXML]; 

편집 :

그냥 당신이 요청에 대해 이야기하지만이 POST를 통해 WS에 객체를 전송하는 방법을 사용하는 것을 보았다.

서버에서 개체를 가져 오려면 RestKit의 예제 응용 프로그램에서 제공되는 다음 방법을 사용하십시오.

[[RKObjectManager sharedManager] getObjectsAtPath:@"yourPath" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
    // Success 
} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    // Error 
    RKLogError(@"Load failed with error: %@", error); 
}]; 
+0

작동하지 않습니다. 동일한 오류가 발생합니다. 또한이 방법은 요청을 serialize하는 것입니다. 제 문제는 응답을 직렬화하는 것입니다. 그러나 감사합니다 –

+0

그냥 내 대답을 편집했습니다. – flashfabrixx

+0

나는 같은 문제가있다 : ( –