iOS : 当我从 Google Drive 中读取视频一定次数时出错

iOS : Error when I read a video from Google Drive a certain amount of times

当我在我的 iOS 应用程序中读取视频时,它使用 Google 驱动器 API,在读取视频的特定时间,我有这个错误:Error Domain= com.google.HTTPStatus代码=403“(空)” 我可以阅读其他视频,直到一定次数后,我仍然有这个错误。

这是我的代码:

if ([file.mimeType isEqualToString:@"video/quicktime"])
{

    GTMHTTPFetcher *fetcher = [service.fetcherService fetcherWithURLString:file.downloadUrl];

    [fetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error) {
        if (error == nil) {
            NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
            NSString* accessToken = [userDefaults objectForKey:@"accessToken"];
            player = [[MPMoviePlayerController alloc]initWithContentURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@&access_token=%@",file.downloadUrl,accessToken]]];
            [[player view] setFrame:CGRectMake(self.view.frame.size.width/2-150, self.navigationController.navigationBar.frame.size.height+30, 300, 400)];
            player.contentURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@&access_token=%@",file.downloadUrl,accessToken]];
            [player setContentURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@&access_token=%@",file.downloadUrl,accessToken]]];
            [player setMovieSourceType:MPMovieSourceTypeFile];


            player.scalingMode = MPMovieScalingModeNone;
            player.controlStyle = MPMovieControlStyleDefault;
            player.backgroundView.backgroundColor = [UIColor whiteColor];
            player.repeatMode = MPMovieRepeatModeNone;

            [self.view addSubview: [player view]];
            [player play];

        } else {
            NSLog(@"An error occurred: %@", error);
        }
    }];
}

是下载数据量大的原因吗?我是否忘记启用或禁用任何内容?

我不使用 GTMHTTPFetcher 但如果您的问题是关于 HTTPStatus Code=403 的,则禁止访问该服务。所以在这种情况下你什么也做不了。当用户尝试访问禁止的视频时,您应该向用户显示一条消息。 您可以查看 statusCode

if(HTTPStatusCode == 403){
   //Show an alertView to user
}

或者你应该控制有权限的视频。否则您的应用程序将崩溃。

有关HTTP status code 403

的更多信息

检查其他状态代码将清除您的应用程序。 状态对于获取数据非常重要。如果出现问题,您应该检查一下。