iOS AFNetworking post 请求 returns 请求失败:请求错误 (400)

iOS AFNetworking post request returns Request failed: bad request (400)

我正在使用 AFNetworking 调用 post 网络服务,但每次我都收到响应

Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)"

这是我的代码

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];

manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [self.responseSerializer.acceptableContentTypes setByAddingObject:@"application/json"];

[manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];

NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];

[parameters setObject:self.APIClientID forKey:@"client_id"];
[parameters setObject:self.APIClientSecret forKey:@"client_secret"];
[parameters setObject:self.APIGrantType forKey:@"grant_type"];

[manager POST:self.requestURL
parameters:parameters
  progress:nil
   success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
       success(task, responseObject);
   } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
       failure(task, error);
   }];

它适用于 postman。 另外,我找到了很多类似错误的答案,但没有解决任何问题。

您正在使用 AFJSONRequestSerializer 序列化您的请求。这将创建一个 JSON 负载,而不是一个 url 编码的表单请求。

请尝试使用 AFHTTPRequestSerializer

有关详细信息,请参阅文档 here

您也可以删除以下代码行,正确的请求序列化程序将为您处理:

[manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=UTF-8" forHTTPHeaderField:@"Content-Type"];