我正在尝试从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);
}];

10-08 08:06
查看更多