0

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'}

なぜこうなった?

4

2 に答える 2

1

私の経験に基づいて、成功のブロックに到達するために満たす必要がある 3 つの条件があります。

  1. 200応答コード
  2. 応答に含まれる適切なJSON オブジェクト
  3. 応答の Content-Type がapplication/jsonに設定されている

これがあなたを助けることを願っています。

于 2013-09-19T00:59:27.653 に答える
0

JSON が無効です。一重引用符 ( {'payment_required':'false'}) がありますが、JSON 形式では二重引用符である必要があります。

{
     "payment_required" : false 
}

PS: の引用符も削除しましたfalse。これfalseは、 が有効な値であるためです (そして、それが推奨されます)。

于 2013-09-19T01:03:10.203 に答える