gpt4 book ai didi

当用户名有空格时,Ruby OpenURI FTP 不工作

转载 作者:数据小太阳 更新时间:2023-10-29 07:17:01 25 4
gpt4 key购买 nike

我正在使用 Ruby 1.9.3 并运行以下命令:

open("ftp://user name:password@datafeeds.domain.com/1234/1234.txt.gz")

返回:

URI::InvalidURIError: bad URI(is not URI?)

对用户名进行编码(用 %20 替换空格)也不起作用:

Net::FTPPermError: 530 Invalid userid/password

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 方法起作用吗?谢谢。

最佳答案

根据 the specification 中的定义, URL 用户名只允许这些字符:

user                   alphanum2 [ user ]
[...]
alphanum2 alpha | digit | - | _ | . | +

浏览器因忽略规范而臭名昭著,因此说它们支持它并不是一个很好的证据。根据规范,它们不应该

如果 cURL 支持它们,则使用 Curb gem,看看是否可以让您使用它们。

关于当用户名有空格时,Ruby OpenURI FTP 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17352127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com