2012-08-22 2 views
1

RestKit을 사용하여 요청을 보내려고합니다. JSON으로 전송되기를 원하지만, RKClient의 기본 POST 메토는 일종의 형식 데이터 형식을 사용합니다 ([request HTTPBodyString]을 사용하여 확인).간단한 RKClient 게시물을 사용하여 JSON을 보냅니다.

나는 이런 식으로 (I 객체 매핑을 사용하지 않는), 간단한 POST를 사용하여 데이터를 전송해야합니다

[[RKClient sharedClient] post:path usingBlock:^(RKRequest* req) { 
    req.params = params; 
    req.delegate = self; 
}]; 

내가 NSJSONSerialization을 사용하는 일부 솔루션을 발견,하지만 그 방법이 충돌 나는있는 NSDate 객체를 넣을 때 내 JSON 사전에.

JSON을 사용하여 요청을 보내도록 RKClient에 지시 할 수있는 방법이 있습니까?

업데이트 : params는 NSDictionary입니다. POST로 보낼 때 JSON을 사용하여 사전을 직렬화하도록 RestKit에 알리고 싶습니다.

답변

0

RestKit의 serializationMIMEType 속성을 RKMIMETypeJSON으로 설정하면됩니다.

예.

[RKObjectManager sharedManager].acceptMIMEType = RKMIMETypeJSON; 
[RKObjectManager sharedManager].serializationMIMEType = RKMIMETypeJSON; 

또한 http://restkit.org/api/master/Classes/RKObjectManager.html 참조 :

원하는 직렬화 포맷은 serializationMIMEType 속성을 설정하여 구성된다. RestKit은 현재 의 RKMIMETypeFormURLEncoded 및 RKMIMETypeJSON에 대한 일련 화를 지원합니다.

업데이트 :

RKParams *params = [RKRequestSerialization serializationWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] 
                 MIMEType:RKMIMETypeJSON]; 
[[RKObjectManager sharedManager].client post:@"/mypath" 
             params:params 
            delegate:self]; 

업데이트 2 :하십시오있는 NSDictionary 객체에서 JSON을 얻기

올바른 MIME 타입으로 일반 JSON 문자열을 게시

예 :

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myNSDictionaryObject 
                options:NSJSONWritingPrettyPrinted 
                error:&error]; 
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
+0

내 질문에 예제와 같은 간단한 POST (단지 일련 번호 개체에 대한) –

+0

이 작동하지 않습니다. 사실이 아닙니다. 나는 그것으로 일반 JSON 문자열을 게시하고있다. 위의 예를 참조하십시오. – High6

+0

그래,하지만 어떻게 jsonString을 얻나요? 질문 : RestKit은 NSDictionary 만 제공 할 때 POST를 통해 json 직렬화 된 데이터를 보내는 간단한 방법을 제공합니까? –

관련 문제