与AFNetworking

问题描述:

撷取OMDb API数据我想从OMDb API与AFNetworking

获取电影数据OMDb提供有一个错误的内容类型的反应,但我能够规避这一点。 不过,我还是从AFNetworking接收错误:

错误而获取IMDBSingleMovieData:错误 域= 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

+0

我建议使用TMDB代替;它有一些很好的包装库,如iOS https://www.themoviedb.org/documentation/api/wrappers-libraries – sekmo

+0

是的,但我已经有一个IMDB id我想搜索数据。 TMBD在这一点上不提供 – edwardmp

你正在做一个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); 
}];