2016-06-29 3 views
0

나는 내가하려고하는 모든 것이 Body에 NSDictionaryPOST을 수행하는 것입니다. 여기 내가 rac_POST과 함께 반환됩니다.HTTP 본문을 올바르게 게시하려면 어떻게해야합니까?

return [[[self rac_POST:[NSString stringWithFormat:@"reservations/%@/update",reservationID] parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData){ 
    [formData appendPartWithHeaders:@{@"Content-Type":@"application/json"} body:jsonData]; 
    [formData appendPartWithFormData:jsonData name:@"payload"]; 

}] map:^id(RACTuple *t) { 
    RACTupleUnpack(NSDictionary * result) = t; 
    return result; 
}] catch:^RACSignal *(NSError *error) { 
     return [self customErrorSignal:error]; 
}]; 

나는 이렇게 많은 방법을 시도했지만 제대로 그냥 POSTINGAPI 통해입니다.

NSMutableDictionary *payloadDict = [[NSMutableDictionary alloc]init]; 
[payloadDict setObject:payloadArray forKey:@"payload"]; 
NSData *jsonData = [NSKeyedArchiver archivedDataWithRootObject:payloadDict]; 

나는 내 방식으로 무엇을 놓치고 : 내 NSDictionary이 같은 NSData에 변환 무엇입니까?

body (위의 코드에서 payloadDict)을 dictionary 매개 변수에 추가하려고 시도했지만 작동하지 않았습니다. Google의 내부 API 문서에 따르면 HTTP 본문의 일부로 payloadDict을 추가한다고 명시되어 있습니다. 다른 사람이 전혀 차이가 있는지 명확히 알 수 있습니까?

답변

1

당신은 당신의 서비스가 데이터를 JSON 형식에 동의하면 다음 데이터 대신 NSKeyedArchiver에 루트 개체를 변환 할 NSJSONSerialization를 사용해야합니다

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:questionDict options:0 error:nil]; 
+0

[formData appendPartWithHeaders : @ {@ "Content-Type": @ "application/json"} body : jsonData]; 이 방법이 Body에 추가하는 데 올바른 방법입니까? 또는 [formData appendPartWithFormData : jsonData name : @ "payload"]를 사용해야합니까? –

+0

NSJSONSerialization으로 변경했지만 여전히 오류가 발생했습니다 –

+1

이 줄을 제거하려고 시도 할 수 있습니다 [formData appendPartWithFormData : jsonData name : @ "payload"]; 다시 확인하십시오. –

0

이 방법을 사용을 NSData에있는 NSDictionary 변환 할 수 있습니다.

관련 문제