2013-07-16 3 views
0

Restkit을 사용하는 iOS 앱이 있습니다. 서버의 대부분의 응답 본문은 XML 형식입니다. 그러나 텍스트/일반 형식으로 "성공"과 같은 응답 만 보낼 수있는 몇 가지 API가 있습니다. 이 API를 호출하면 200 응답을 얻을 수 있지만 restkit은 아래 오류와 같이 Content-Type = application/xml이 예상되므로 매핑 오류가 발생합니다.Restkit을 사용하여 다중 응답 MIMETypes를 처리하는 방법 0.20

NSLocalizedDescription=Loaded an unprocessable response (200) with content type 'application/xml'} response.body=success 

나는 서버에서받은 XML을 해석 RKXMLReaderSerialization 클래스를 사용하고 나는 그것을 등록하는 방법이있다.

[RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:@"application/xml"]; 

문서에서 여러 MIMEType을 등록 할 수 있지만 어떻게 작성했는지 알 수는 없습니다. 그게 가능하다면 누군가 나에게 그것을 지적 할 수 있습니다. 그렇지 않다면 이것을 처리 할 방법이 있습니까? 실제로 content-type에 대한 response-headerapplication/xml의 값을 한 것으로 진술했다 위에

UPDATE/솔루션

북두칠성에서 추가 연구 도움 후 나는 오류를 발견했다. 이 키보드는 response.bodyapplication/xml 형식의 본문으로 매핑하려고 시도합니다. response.body에 "success"라는 단어 만 들어 있으면 응답을 처리 할 수 ​​없습니다. 나는 이것을 내 서버 녀석에게 알려 주면서 끝냈다. 그리고 그는 요청으로 보내진 Accept 헤더에 의해 선언 된 MIMEType으로 포맷 된 응답을 수정했다.

답변

1

RKObjectManagersetAcceptHeaderWithMIMEType:으로 전화하면 응답에서 허용되는 MIME 유형을 알 수 있습니다. RestKit이 오류없이 전체 매핑 워크 플로를 실행할 수 있도록 자신 만의 직렬화 클래스를 정의하고 등록해야 할 수도 있습니다.

+0

감사합니다. Wain, 저는 현재'setAcceptHeaderWithMIMEType :'을 사용하고 있습니다. 어젯밤에 요청에 대한 "수락"헤더를 설정하는 데 사용되었다고 가정했기 때문에이를 조사하지 못했습니다. 나는 오늘 밤 그것을 들여다 볼 것이다. 우연히 둘 이상의 설정 방법을 알고 있습니까? I.E. 이'setAcceptHeaderWithMIMEType : someMIMEType, someOtherMIMEType'과 같은 것이거나'setAcceptHeaderWithMIMEType : someMIMEType' 새로운 줄의 코드'setAcceptHeaderWithMIMEType : someOtherMIMEType'이 필요합니까? – Ben

+0

요청 수락 헤더에 사용됩니다. 이 요청에 대해 어떤 응답 유형을 사용할 수 있습니까? 나는 그것이 부가 적이라고 믿습니다. 응답 타입이 호출 될 때마다, 받아 들일 수있는 옵션 목록에 추가됩니다. – Wain

+0

그럴 경우 내 서버 담당자와 이야기해야 할 수도 있습니다. accept 헤더를 이미 application/xml으로 보내고 있습니다. 나는 오늘 밤 이것을 계속 연구 할 것입니다. – Ben