Ruby’s Net:HTTP needs to be given a full URL in order for it to connect to the server and get the file properly. By “full URL” I mean a URL including the http:// part and the trailing slash if it needs it. For instance, Net:HTTP won’t connect to a URL looking like this: example.com, but will connect just fine to http://example.com/. Is there any way to make sure a URL is a full URL, and add the required parts if it isn’t?
EDIT: Here is the code I am using:
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)
}
This would do a simple check for http/https:
This could be a more general one to handle multiple protocols (ftp, etc.)
In order to make sure
parsed_url.pathgives you a proper value (it should be/when no specific path was provided), you could do something like this: