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
}
或者你应该控制有权限的视频。否则您的应用程序将崩溃。
的更多信息
检查其他状态代码将清除您的应用程序。
状态对于获取数据非常重要。如果出现问题,您应该检查一下。
当我在我的 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
}
或者你应该控制有权限的视频。否则您的应用程序将崩溃。
的更多信息检查其他状态代码将清除您的应用程序。 状态对于获取数据非常重要。如果出现问题,您应该检查一下。