我正在使用 Ruby 1.9.3 并正在运行以下命令:
open("ftp://user name:password@datafeeds.domain.com/1234/1234.txt.gz")
返回:
URI::InvalidURIError: bad URI(不是 URI?)
对用户名进行编码(用 %20 替换空格)也不起作用:
Net::FTPPermError: 530 无效的用户名/密码
URI 在所有经过测试的浏览器和 FTP 客户端中都能正常工作——只是在使用 OpenURI 时不行。此外,使用 Net::FTP(由 OpenURI 包装)也可以正常工作:
require 'net/ftp'
ftp = Net::FTP.new
ftp.connect("datafeeds.domain.com", 21)
ftp.login("user name", "password")
ftp.getbinaryfile("/1234/1234.txt.gz")
知道为什么 OpenURI 方法不起作用,而 Net::FTP 方法起作用吗?谢谢。