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)
?
答案 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);
}];