1

我在单独的行上有一个带有 uid 的文件,我正在尝试将它们包含在 URI 中。

File.open("File Path").readlines.each do |line|

puts line

uid = line 

uri = URI("http://example:port/path/variable=#{uid}&fragment")

res = Net::HTTP.get_response(uri)

puts res.body

但我收到一条错误消息,提示“错误的 URI(不是 URI?)”。

有人可以帮忙吗?

谢谢

4

3 回答 3

1

这在很大程度上取决于您实际喂它的内容,但我建议尝试这 2 件事,以便您很好地排除代码故障。

  • 用于puts "[#{uid}]"查看line变量究竟包含什么。例如,这肯定会帮助您注意它是否有换行符。右方括号将在下一行,您将知道您的输入格式错误。

  • 尝试像这样构造 URL uri = URI("http://example:port/path/variable=#{URI.encode(uid)}&fragment"):. 这将帮助您转义通常不允许在 URI / URL 中使用的字符。

希望这可以帮助。

于 2012-09-27T10:35:05.423 回答
1

你能试试

uid = line.strip

删除前导strip和尾随空格和换行符。

p uid

或者

puts uid.inspect

您可能会看到字符串的真实内容。

于 2012-09-27T11:15:00.463 回答
0

你的意思是

uri = URI("http://example:port/path/?variable=#{uid}&fragment")
于 2012-09-27T10:20:54.140 回答