0

当我以这种方式使用 AFHHTPClient 从服务器请求数据时:

[[NetworkHelper sharedHelper] postPath:path parameters:parameters] success:^(AFHTTPRequestOperation *operation, id responseObject) {
                NSLog(@"%@", [operation class]);
                NSLog(@"%@", [responseObject class]);
            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                NSLog(@"%@", [error localizedDescription]);
            }];

我懂了:

2012-10-10 13:24:36.881 MyApp[4635:c07] AFHTTPRequestOperation
2012-10-10 13:24:36.881 MyApp[4635:c07] NSConcreteData

我试图application/json在服务器的响应中强制内容类型,但我仍然得到AFHTTPRequestOperation.

但如果我使用这个:

[[AFJSONRequestOperation JSONRequestOperationWithRequest:[NSURLRequest requestWithURL:myURL] success:^(NSURLRequest *request, NSURLResponse *response, id JSON) {
                NSLog(@"%@", JSON);
            } failure:^(NSURLRequest *request, NSURLResponse *response, NSError *error, id JSON) {
                NSLog(@"%@", [error localizedDescription]);
            }] start];

我得到了我需要的 JSON 响应。

我应该怎么做才能使用 AFHTTPClient 获得 JSON 响应?

更新:

我在课堂上添加NSLog(@"%@",[self.response MIMEType]);方法- (BOOL)hasAcceptableContentTypeAFHTTPRequestOperation收到

2012-10-11 09:48:25.052 MyApp[3339:3803] application/json

但我仍然AFHTTPRequestOperation上课。

4

2 回答 2

0

尝试设置 AFHTTPRequestOperation:acceptableContentTypes:

+ (NSSet *)acceptableContentTypes {
    return [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
}
于 2012-10-10T07:00:20.457 回答
0

我遇到了同样的问题,我怀疑这可能与 AFJSONRequestOperation 处理响应的方式有关。

我已经使用 AFJSONRequestOperation 发送了完全相同的请求,使用从 [AFHTTPClient clientRequestWithMethod] 返回的 NSMutableURLRequest 并构造了我自己的 NSMutableURLRequest,并且每个请求都有一个不同的 mime 类型的响应——来自 [AFHTTPClient clientRequestWithMethod] 的那个表示文本/纯文本;来自 NSMutableURLRequest 的“手工”构造的是 text/json。

我在这个问题中提到了这一点:

AFNetworking with AFHTTPClient with AFJSONRequestOperation // MIME 类型问题

于 2012-11-01T20:51:47.917 回答