AFJSONRequest操作在200响应上命中失败的块.statusCode



我的AFJSONRequestOperation在200响应中遇到失败块。这是因为我有额外的 JSON 吗?

 [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSDictionary *d = (NSDictionary *)responseObject;
    bool required = [d[@"payment_required"] boolValue];
    [self.delegate paymentRequired:required];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    int statusCode = operation.response.statusCode;
    NSLog(@"status code: %d response: %@", statusCode, operation.responseString);
    if (operation.response.statusCode == 402) {
        [self.delegate paymentRequired:true];
        return ;
    }
    [self handleOperationFailed:operation action:^{
        [self determinePaymentRequired];
    }];
}];

控制台中的产量

status code: 200 response: {'payment_required':'false'}

为什么会这样?

根据我的经验,您需要满足 3 个条件才能达到成功块:

  1. 200响应码
  2. 响应中包含的正确 JSON 对象
  3. 响应的内容类型设置为应用程序/json

希望这能帮助你。

您的 JSON 无效。它有单引号 ( {'payment_required':'false'} ),但 JSON 格式需要它们是双引号:

{
     "payment_required" : false 
}

PS:我还删除了false上的引号,因为false是一个有效的值(并且是首选值)。

相关内容

  • 没有找到相关文章

最新更新