2015-02-26 2 views
0
NSDictionary *parameters = @{ 
          @"project_name": @"hasanProj", 
          @"project_desc" : @"testing...", 
          @"project_date" : @"2015-2-22" 
          }; 

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithBaseURL:[NSURL URLWithString:@"http://serverIP"]]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
[manager.requestSerializer setValue:[HRUser sharedUser].userApiKey forHTTPHeaderField:@"Authorization"]; 
[manager POST:@"/rest/v1/project" parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) { 

    NSLog(@"%@",responseObject); 

} failure:^(NSURLSessionDataTask *task, NSError *error) { 
    NSLog(@"error: %@",error.localizedDescription); 
}]; 

Этот код возвращает Request failed: bad request (400).Я не могу избавиться от Запроса не удалось: плохой запрос (400)

Я проверил параметр, url они все правильно. Я позвонил ему из почтового корреспондента chrome и получил правильный результат.

И другие запросы работают отлично, даже получить работает нормально.

Но почему я получаю Request failed: bad request (400)?

+0

Ожидает ли ваш сервер Content-Type: application/json заголовок? –

+0

yes server expect a Content-Type: application/json – HasanRaza

+0

, но я проверил его, добавив «[manager.responseSerializer.acceptableContentTypes setByAddingObject: @" application/json "]", но все та же ошибка. – HasanRaza

ответ

2

Я думаю, что возникнет проблема с запросом. ваш перевод неправильного типа или неправильных данных. acceptedContentTypes для запроса также имеет значение. Во-вторых, параметры, которые вы отправляете на него. проверьте правильность тегов, не спросите у разработчика WEB-сервиса точную потребность в API.

Код:

NSDictionary *parameters = @{ 
          @"project_name": @"hasanProj", 
          @"project_desc" : @"testing...", 
          @"project_date" : @"2015-2-22" 
          }; 

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]init]; 
manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 

[manager.requestSerializer setValue:[HRUser sharedUser].userApiKey forHTTPHeaderField:@"Authorization"]; 

[manager.requestSerializer.acceptableContentTypes setByAddingObject:@"application/json"]; 
[manager.responseSerializer.acceptableContentTypes setByAddingObject:@"application/json"]; 


[manager POST:@"http://serverIP/rest/v1/project" parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) 
{ 
    NSLog(@"%@",responseObject); 

} failure:^(NSURLSessionDataTask *task, NSError *error) { 
    NSLog(@"error: %@",error.localizedDescription); 
}]; 
4

Я также сталкиваются с той же ошибки, и это работает для меня ..

manager.responseSerializer.acceptableStatusCodes = [NSIndexSet indexSetWithIndex:400]; 

или

Вы можете непосредственно разобрать объект ответа.