RestKit을 사용하여 POST 요청을하고 있습니다. 나는 간단한 POST 요청을 성공적으로 만들 수있다. 여기에는 간단한 NSString이있는 매개 변수가 포함됩니다. 불행히도 매개 변수가 OBJECTS를 필요로 할 때 제대로 POST 요청을 할 수 없습니다. "주"의 키가 주 목적이다RestKit에서 개체를 사용 가능한 매개 변수로 변환하는 데 어려움이 있습니다.
가NSDictionary *sectionStepParams = [NSDictionary dictionaryWithObjectsAndKeys:sectionCodeString,@"1",lastSectionStepCode,@"2",_currentState,@"State",nil];
주의 사항 : 예를 들어
, 여기에 같은 매개 변수의 내 NSDictionary에 보이는 것입니다. 현재이 클래스는 내 State.h 클래스입니다.@interface State : NSObject
@property (nonatomic,strong) NSMutableArray *SectionStepResponses;
@property (nonatomic,copy) NSString *Token;
+(RKObjectMapping*)mapping;
-(void)output;
@end
매우 간단한 헤더입니다. NSString과 SectionStep 객체의 배열 (다른 간단한 클래스).
어떻게 상태 개체를 제대로 전달합니까? State 객체를 NSDictionary에 넣으면 올바른 JSON 응답을 반환하지 않습니다. 이 상태 개체를 매개 변수 NSDictionary에 대해 인식 할 수있는 데이터로 변환해야합니까?
RKResponseDescriptor *stateRD = [RKResponseDescriptor responseDescriptorWithMapping:[State mapping] method:RKRequestMethodPOST pathPattern:nil keyPath:@"Response.State" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
NSDictionary *sectionStepParams = [NSDictionary dictionaryWithObjectsAndKeys:sectionCodeString,@"1",lastSectionStepCode,@"2",_currentState,@"State",nil];
//Create Object Manager
RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:baseurl];
[objectManager addResponseDescriptorsFromArray:@[stateRD]];
//Create Request Operation
RKObjectRequestOperation *requestOperation = [objectManager appropriateObjectRequestOperationWithObject:nil method:RKRequestMethodPOST path:@"getnextstep" parameters:sectionStepParams];
//Set Request Operation Success/Fail block
[requestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"success %@",mappingResult.array);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"failed");
}];
참고 :
는 여기에 POST 요청을 만들기위한 내 전체 코드이 서비스는 상태 개체를 필요로하고 상태 개체를 다시 전달합니다. 상태 객체를 다시 가져올 수 있습니다 (JSON이 비어 있음). 문제는 서비스에 적절한 상태 객체를 제공하는 것입니다.
당신을 감사합니다!
답장을 보내 주셔서 감사합니다. POST 요청을하기위한 전체 코드를 게시했습니다. RKResponseDescriptor로 충분하지 않은 이유는 무엇입니까? Restkit에 배열과 문자열을 포함하는 State 객체가 필요하다고 지정하지 않습니까? – Woodless
Wain, 파라미터를 통해 객체를 기대할 수 있도록 안정적인 API를 만들었습니까? 내 매개 변수를 변환하면 내 POST URL은 다음과 같습니다 APIURL.com/v1/SectionCode=1&LastSectionStepCode=2&State= _ ??? _ 은 "_ ??? _"뭔가가에가는 것을 의미한다 URL, 내 상태 개체를 원합니다. 이 객체를 매개 변수에 넣지 말고 POST해야한다고 생각하십니까? API가 매개 변수에서 State 개체를 가져 오면 방금 변경된 상태 개체를 반환합니다. – Woodless
왜 매개 변수로 기대합니까? 매개 변수 여야한다면 RestKit이 매개 변수로 제공하기 전에 상태 개체를 문자열 표현으로 변환해야합니다. – Wain