Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用AFNetworking 2.0将视频上载到youtube_Ios_Objective C_Youtube Api_Afnetworking - Fatal编程技术网

Ios 使用AFNetworking 2.0将视频上载到youtube

Ios 使用AFNetworking 2.0将视频上载到youtube,ios,objective-c,youtube-api,afnetworking,Ios,Objective C,Youtube Api,Afnetworking,我正在尝试使用AFNetworking 2.0,使用v3 API将视频上传到YouTube。上传本身工作正常,我可以在我的频道看到视频。我遇到的问题是,用于指定标题、描述等的参数(以及视频本身)这里是我使用的代码 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializ

我正在尝试使用AFNetworking 2.0,使用v3 API将视频上传到YouTube。上传本身工作正常,我可以在我的频道看到视频。我遇到的问题是,用于指定标题、描述等的参数(以及视频本身)这里是我使用的代码

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"Bearer #_token_goes_here#" forHTTPHeaderField:@"Authorization"];
NSDictionary *parameters = @{@"snippet" : @{@"title" : @"random_title",
                                                                   @"description" : @"random_description"}};
NSURL *filePath = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov"]];
[manager POST:@"https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status" parameters:parameters  constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileURL:filePath name:@"video" fileName:@"video.mov" mimeType:@"video/*" error:NULL];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Success: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];
AFHTTPRequestOperationManager*manager=[AFHTTPRequestOperationManager];
manager.requestSerializer=[AFJSONRequestSerializer序列化程序];
[manager.requestSerializer setValue:@“承载者”#令牌(U转到这里#”用于HttpHeaderField:@“授权”];
NSDictionary*参数=@{@“代码段”:@{@“标题”:@“随机标题”,
@“描述”:@“随机描述”};
NSURL*filePath=[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@“video”类型:@“mov”];
[经理职务:@”https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status“parameters:parameters constructingBodyWithBlock:^(id formData){
[formData appendPartWithFileURL:filePath名称:@“video”文件名:@“video.mov”mimeType:@“video/*”错误:NULL];
}成功:^(AFHTTPRequestOperation*操作,id响应对象){
NSLog(@“成功:%@”,响应对象);
}失败:^(AFHTTPRequestOperation*操作,NSError*错误){
NSLog(@“错误:%@”,错误);
}];
如何正确设置请求的JSON参数?
谢谢。

好的,如果有人对此感兴趣,我找到的唯一解决方案就是发送第二次PUT更新请求,以设置正确的标题和描述

您必须将代码段附加到多部分表单数据中

    NSData *jsonData = [NSJSONSerialization dataWithJSONObject: parameters options:NSJSONWritingPrettyPrinted error:NULL];
    NSMutableDictionary *mutableHeaders = [NSMutableDictionary dictionary];
    [mutableHeaders setValue:[NSString stringWithFormat:@"form-data; name=\"%@\"", @"snippet"] forKey:@"Content-Disposition"];
    [mutableHeaders setValue:@"application/json" forKey:@"Content-Type"];
    [formData appendPartWithHeaders:mutableHeaders body:jsonData];

    [formData appendPartWithFileURL:filePath name:@"video" fileName:@"video.mov" mimeType:@"video/*" error:NULL];

一个请求,只需要上传权限。

在我看来很好。你实际看到的结果是什么?有错误吗?没有错误。视频上传很好,我得到了回复。但是视频的标题是“未知”,描述是空的。我想有一个合适的方式发送视频资源JSON,但不知道如何发送。