需要給Ruby的Net:HTTP
一個完整的URL,以便它連接到服務器並正確獲取文件。 「完整網址」是指包含http://
部分的URL和尾部斜槓(如果需要的話)。例如,Net:HTTP
將不會連接到如下所示的URL:example.com
,但會很好地連接到http://example.com/
。有什麼方法可以確保一個URL是一個完整的URL,如果不是,則添加所需的部分?在Ruby的Net :: HTTP中使用一個字符串中的URL
編輯:這裏是我使用的代碼:
parsed_url = URI.parse(url)
req = Net::HTTP::Get.new(parsed_url.path)
res = Net::HTTP.start(parsed_url.host, parsed_url.port) {|http|
http.request(req)
}
'Uri.parse'可能對此有所幫助。 http://www.ruby-doc.org/stdlib/libdoc/uri/rdoc/ – Brian 2011-05-11 23:11:49
@Brian:奇怪的是,URL正在用'URI.parse'解析,但是當我沒有給出一個錯誤正確的URL。 – 2011-05-11 23:13:32
是的,如果排除HTTP,URI.parse將爲您提供一個'URI :: Generic'對象而不是'URI :: HTTP'對象。 'URI :: Generic'類沒有'request_uri'方法,所以Net :: HTTP扼殺它。 – 2011-05-11 23:22:32