当我用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)hasAcceptableContentType
方法中添加了AFHTTPRequestOperation
,我收到了
2012-10-11 09:48:25.052 MyApp[3339:3803] application/json
但我仍然可以AFHTTPRequestOperation
上课。
答案 0 :(得分:0)
尝试设置AFHTTPRequestOperation:acceptableContentTypes:
+ (NSSet *)acceptableContentTypes {
return [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", nil];
}
答案 1 :(得分:0)
我遇到了同样的问题,我怀疑它可能与AFJSONRequestOperation处理响应的方式有关。
我使用AFJSONRequestOperation使用从[AFHTTPClient clientRequestWithMethod]返回的NSMutableURLRequest并构建我自己的NSMutableURLRequest来调度完全相同的请求,并且每个都有一个具有不同mime类型的响应 - 来自[AFHTTPClient clientRequestWithMethod]的一个指示text / plain; “手工”构建的NSMutableURLRequest中的一个是text / json。
我在这个问题中已经提到过这个问题:
AFNetworking with AFHTTPClient with AFJSONRequestOperation // MIME-Type Issues