2013-10-07 11 views
1

Я пытаюсь отправить данные JSON в запросе POST на сервер с помощью RestKit, но я получаю сообщение об ошибкеОшибка при запросе RestKit POST

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

Код я написал:

NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",BASE_SERVICE_URL,TASK_SERVICE_URL]]; 
RKObjectMapping *mapping=[RKObjectMapping mappingForClass:[LoginData class]]; 
[mapping addAttributeMappingsFromDictionary:@{@"s":@"status", 
               @"message":@"message"}]; 
RKResponseDescriptor *descriptor=[RKResponseDescriptor responseDescriptorWithMapping:mapping method:RKRequestMethodPOST pathPattern:nil keyPath:@"" statusCodes:0]; 
NSMutableURLRequest *request=[[NSMutableURLRequest alloc]initWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
NSDictionary *[email protected]{@"task":@"storeProfile", 
        @"fdate":@"01.01.2013", 
        @"tdate":@"19.08.2013", 
        @"keyword":@"taxi && cab", 
        @"AlertHours":@"120", 
        @"AlertDay":@"0", 
        @"AlertTimeStart":@"12:00", 
        @"AlertTimeEnd":@"18:00", 
        @"topic":@[ 
          @{@"tname":@"Politics"}, 
          @{@"tname":@"Economy"} 
          ], 
        @"publication":@[ 
          @{@"pname":@"Vijay Times Online"}, 
          @{@"pname":@"Leisure Opportunities"} 
          ] 
        }; 
NSError *error=nil; 
NSData *jsonData=[NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:&error]; 
if (error) { 
    NSLog(@"%@",error.localizedDescription); 
    return; 
} 
[request setHTTPBody:jsonData]; 
operation=[[RKObjectRequestOperation alloc]initWithRequest:request responseDescriptors:@[descriptor]]; 
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
    LoginData *data=[mappingResult.dictionary objectForKey:@""]; 
    NSLog(@"%@",data.message); 
} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    NSLog(@"ERROR:%@",error.localizedDescription); 
}]; 
[operation start]; 

Может кто-нибудь пожалуйста, помогите мне разобраться, в чем проблема? Я попытался установить тип содержимого, как следовать также:

[request addValue:@"application/application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; 

ответ

0

Вы должны зарегистрировать класс RKNSJSONSerialization. Пожалуйста, укажите ниже код в своем методе.

[RKMIMETypeSerialization registerClass:[RKNSJSONSerialization class] forMIMEType:@"text/plain"]; 
+0

Я видел это в ответ на SO и не уже пытались, но не повезло. Я не получаю никаких ошибок после добавления, но сервер также не отвечает, и я не получаю никакого ответа. – execv

1

Попробуйте

RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:BASE_URL]]; 
[objectManager setRequestSerializationMIMEType:RKMIMETypeJSON]; 
Смежные вопросы