我在一个单独的行上有一个带有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?)”。
有人可以帮忙吗?
由于
答案 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")