我正在创建一个应用程序,将数据从眼镜传输到服务器进行广播。 直到现在我能够从眼镜下载数据到我的iPhone文档目录。 现在我想将下载的数据上传到我的服务器,以便我们可以将这些数据广播给我们的用户。
我的iPhone和眼镜在WiFi的帮助下相互连接,我正在尝试通过蜂窝网络上传下载的数据。
所以基本上我的概念是从眼镜下载数据并将其上传到服务器。
我已经尝试将我的iPhone作为服务器,我的后端团队可以从我的iPhone下载数据。
我在这个方法上取得了成功,但问题是,对于这个过程,客户端和服务器应该在相同的私有ip网络上。
所以现在我们只剩下一种方式从眼镜下载TS卡盘,同时将TS文件上传到我们的服务器进行广播。
我正在使用NFNetworking
从眼镜下载视频卡盘" TS File"但无法将该卡盘上传到我的服务器。
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://xxx.xx.xx.x/abc/trunk/WebServices/app/webroot/xyz"]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request] ;
operation.outputStream = [NSOutputStream outputStreamWithURL:[NSURL URLWithString:@"http://abc.aa.a.a/xyz/trunk/WebServices/app/webroot/img/glasses/test/demo.ts"] append:NO];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
// NSLog(@"Successfully downloaded file to %@", path);
// NSLog(@"download finished!");
if(_delegate && [_delegate respondsToSelector:@selector(ZBTM3U8SegmentDownloaderFinishDownload:)])
{
[_delegate ZBTM3U8SegmentDownloaderFinishDownload:self];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// NSLog(@"Error: %@", error);
}];
[operation start];
它处于成功状态但数据未上载到服务器上 服务器文件夹显示为空。
- (void)postVideoOnServer {
NSDictionary *requestDict = @{ @"uniqueToken":@"101", @"user_id":@"102",};
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:_tsFileName];
NSData *selectedVideo = [NSData dataWithContentsOfFile:path];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
AFHTTPRequestOperation *operation = [manager POST:@"http://xxx.x.x.xx/myi/public_html/WebServices/broad/axy" parameters:requestDict constructingBodyWithBlock: ^(id <AFMultipartFormData> formData) {
[formData appendPartWithFileData:selectedVideo name:@"file" fileName:@"filename.ts" mimeType:@"video/quicktime"];
} success: ^(AFHTTPRequestOperation *operation, id responseObject)
{
NSInteger statusCode = operation.response.statusCode;
NSLog(@"Status Code ::%d", statusCode);
NSLog(@"Response ::%@", responseObject);
[self handleVideoServiceResponse:responseObject];
}
failure : ^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@"Error: %@ %@", operation.responseString, error);
}];
[operation start];
}
它总是返回请求超时错误。
提前致谢。
答案 0 :(得分:0)
您确定NSData * selectedVideo不是零吗?我怀疑你是否也是mime?只是建议尝试使用MIME:video / MP2T,它应该解决你的问题。