带变量的URI

时间:2012-09-27 10:17:05

标签: ruby file uri

我在一个单独的行上有一个带有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?)”。

有人可以帮忙吗?

由于

3 个答案:

答案 0 :(得分:1)

这在很大程度上取决于你实际喂它是什么,但我建议尝试这两件事,这样你就可以很好地解决你的代码。

  • 使用puts "[#{uid}]"查看line变量包含的内容。例如,这肯定会帮助你注意它是否有换行符。右方括号将在下一行,您将知道您的输入格式不正确。

  • 尝试构建如下网址:uri = URI("http://example:port/path/variable=#{URI.encode(uid)}&fragment")。这将帮助您转义URI / URL中通常不允许的字符。

希望这有帮助。

答案 1 :(得分:1)

你可以试试吗

uid = line.strip

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

使用

p uid

puts uid.inspect

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

答案 2 :(得分:0)

你的意思是

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