2012-09-27 59 views
1

我已經得到了一個文件與uid分開的行,我試圖將它們包含在一個URI中。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?)」。

任何人都可以幫忙嗎?

感謝

回答

1

你可以嘗試

uid = line.strip 

strip去除了開頭和結尾的空格和換行。

隨着

p uid 

puts uid.inspect 

您可能會看到該字符串的實際內容。

+0

啊,你是天才!如果我可以投票,我會給你數千!完整的字符串是文件中新行的'example \ n',有沒有辦法去掉它? –

+0

感謝您的幫助! –

0

你意味着

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

這取決於什麼是你真正餵養了很多,但我建議,以便您診斷代碼以及嘗試這些兩件事情。

  • 使用puts "[#{uid}]",看看什麼是line變量包含正好。例如,這肯定會幫助您注意到它是否包含換行符。右方括號將在下一行,您會知道您的輸入格式不正確。

  • 嘗試構建像這樣的URL:uri = URI("http://example:port/path/variable=#{URI.encode(uid)}&fragment")。這將幫助您轉義通常不允許在URI/URL中使用的字符。

希望這會有所幫助。

+0

您可以使用'p uid'或'puts uid.inspect'來查看_exact_內容。 – knut

+0

感謝您的幫助 –