"The file couldn’t be opened." UserInfo={NSURL=ftp:/xxxx:xxx@2011@ftp.xxx.com:21/} 的解决方案是什么?
What is solution for "The file couldn’t be opened." UserInfo={NSURL=ftp:/xxxx:xxx@2011@ftp.xxx.com:21/}?
我正在尝试调用 FTP 服务器 api 并希望在 api 成功时获取文件名。
下面的代码我尝试调用 api,
let host = "ftp.xxx.com"
let user = "xxx"
let password = "xxx@2011"
let port = "21"
let url = URL(string: "ftp://"+user+":"+password+"@"+host+":"+port+"/")
var data: Data? = nil
do {
if let anUrl = url {
data = try Data(contentsOf: anUrl)
print(data!)
}
} catch {
print("Unexpected error: \(error).")
}
当 运行 这段代码时,我收到类似
的错误
错误域=NSCocoaErrorDomain 代码=256 "The file couldn’t be opened."用户信息={NSURL=ftp:/xxxx:xxx@2011@ftp.xxx.com:21/}。
请给我任何解决方案。
问题出在密码中的普通@
。这意味着 ftp://xxxx:xxx@2011@ftp.xxx.com:21/
被解释为使用用户名 xxxx
和密码 xxx
连接到服务器 2011@ftp.xxx.com
,这显然是错误的。
解决方案应该是URL-将特殊字符@
编码为%40
,即使用URL
ftp://xxx:xxx%402011@ftp.xxx.com:21/
我正在尝试调用 FTP 服务器 api 并希望在 api 成功时获取文件名。 下面的代码我尝试调用 api,
let host = "ftp.xxx.com"
let user = "xxx"
let password = "xxx@2011"
let port = "21"
let url = URL(string: "ftp://"+user+":"+password+"@"+host+":"+port+"/")
var data: Data? = nil
do {
if let anUrl = url {
data = try Data(contentsOf: anUrl)
print(data!)
}
} catch {
print("Unexpected error: \(error).")
}
当 运行 这段代码时,我收到类似
的错误错误域=NSCocoaErrorDomain 代码=256 "The file couldn’t be opened."用户信息={NSURL=ftp:/xxxx:xxx@2011@ftp.xxx.com:21/}。
请给我任何解决方案。
问题出在密码中的普通@
。这意味着 ftp://xxxx:xxx@2011@ftp.xxx.com:21/
被解释为使用用户名 xxxx
和密码 xxx
连接到服务器 2011@ftp.xxx.com
,这显然是错误的。
解决方案应该是URL-将特殊字符@
编码为%40
,即使用URL
ftp://xxx:xxx%402011@ftp.xxx.com:21/