我正在尝试从OMDb API获取电影数据
OMDb提供的响应具有错误的内容类型,但是我可以绕开它。
但是,我仍然收到来自AFNetworking的错误:
提取IMDBSingleMovieData时出错:错误
Domain = NSCocoaErrorDomain代码= 3840“无法执行该操作
完成。 (可可错误3840。)”(JSON文本不是以数组或
对象和允许未设置片段的选项。)UserInfo = 0x10a7451d0
{NSDebugDescription = JSON文本不是以数组或对象开头,并且
允许不设置片段的选项。}
码:
// add url request parameters
NSDictionary* parameters = @{ @"i" : [NSString stringWithFormat:@"tt%d", identifier] };
// run the request operation
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
[manager POST:@"http://www.omdbapi.com" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
self.singleIMDBMovieData = [NSDictionary dictionaryWithDictionary:responseObject];
[self.delegate updateIMDBMovieDetails];
NSLog(@"Object returned %@", self.singleIMDBMovieData);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error while fetching IMDBSingleMovieData: %@", error);
}];
我该怎么做才能解决此问题?来自API的示例响应:http://www.omdbapi.com/?i=tt0993846
最佳答案
您正在发出POST
请求,但想获取数据,因此您应该使用GET
:
[manager GET:@"http://www.omdbapi.com" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
self.singleIMDBMovieData = [NSDictionary dictionaryWithDictionary:responseObject];
[self.delegate updateIMDBMovieDetails];
NSLog(@"Object returned %@", self.singleIMDBMovieData);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error while fetching IMDBSingleMovieData: %@", error);
}];