什么是“文件无法打开”的解决方案.UserInfo = {NSURL = ftp:/ xxxx:xxx @ 2011 @ ftp.xxx.com:21 /}?

问题描述 投票:0回答:1

我试图调用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“无法打开文件。”的UserInfo = {NSURL = FTP:/ XXXX:XXX @ 2011 @ ftp.xxx.com:21 /}。

请给我任何解决方案来解决这个问题。

ios swift ftp ftp-client
1个回答
1
投票

问题是密码中的简单@。这意味着ftp://xxxx:xxx@[email protected]:21/被解释为使用用户名[email protected]和密码xxxx连接到服务器xxx,这显然是错误的。

解决方案应该是将特殊字符@ URL编码为%40,即使用URL

ftp://xxx:xxx%[email protected]:21/
© www.soinside.com 2019 - 2024. All rights reserved.