我正在尝试使用NSURLSessionStreamTask将CSV文件上传到FTP服务器,但它不起作用。 这是我的代码;
NSURLSession *session = [NSURLSession sharedSession];
NSString *uploadURL = [NSString stringWithFormat:@"ftp://%@:%@@%@", userName,password,IP];
NSURLSessionStreamTask *streamTask = [session streamTaskWithHostName:uploadURL port:21];
[streamTask writeData:pathData timeout:60.0 completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"error");
}
[streamTask closeWrite];
[streamTask stopSecureConnection];
return;
}
NSLog(@"success");
[streamTask closeWrite];
[streamTask stopSecureConnection];
}];
}
[streamTask resume];
}
我收到了此错误消息;
Error Domain=kCFErrorDomainCFNetwork Code=2 "(null)" UserInfo={kCFGetAddrInfoFailureKey=8
如果您能给我任何建议或提示,请告诉我。 我真的很感激。 提前谢谢。
答案 0 :(得分:1)
如果您使用主机名填充streamTaskWithHostName: port:
的第一个参数,这可能会有所帮助!你给它一个URL。没有编译时错误,因为您将URL作为NSString
(而不是NSURL
)传递。您不需要uploadURL
变量;传递IP
代替。
NSURLSessionStreamTask
的要点是,在处理与Apple默认处理程序不同/不同的协议时,您自己使用NSURLSession
系统的其余部分执行所有协议事务。换句话说,此代码不会为您执行FTP事务;你必须自己构建和发送命令。这种情况包括上传用户名和密码信息。