我无法摆脱请求失败:错误请求(400)

时间:2015-02-26 06:17:59

标签: ios objective-c afnetworking-2 bad-request

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)

我检查了参数,网址都是正确的。我从chrome扩展邮递员那里调用它并获得正确的结果。

其他请求工作正常,即使工作正常。

但为什么我会收到Request failed: bad request (400)

2 个答案:

答案 0 :(得分:4)

我也面临同样的错误,这对我有用..

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

您可以直接解析响应对象。

答案 1 :(得分:2)

我认为请求会有问题。你输错了类型或错误的数据。 requestContentTypes对于请求也很重要。 第二件事是您向其发送数据的参数。检查标签是否正确 请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);
}];
相关问题