Net::HTTP

I’m looking at the documentation:

And I notice two uses of Net::HTTP. Both are using GET requests. But
what’s the difference? When to use which?

Net::HTTP.start(uri.host, uri.port) do |http|
request = Net::HTTP::Get.new uri

response = http.request request # Net::HTTPResponse object
end

uri = URI(‘Example Domain’)
res = Net::HTTP.get_response(uri)

On Tue, May 7, 2013 at 12:43 PM, John M. [email protected] wrote:

end

uri = URI(‘Example Domain’)
res = Net::HTTP.get_response(uri)

I’m not sure there is a definitive answer, but my heuristic is that if
I’m going to do a few things with the connection, I’ll use the first
form (send code into the block, as this ensures the connection shuts
down at the end of the block.

If I’m only getting one thing and then carrying on with it with no
need for using that connection again, I’ll use the second form.

But again, this is only a heuristic, and not definitive.

On Tuesday, May 7, 2013 6:43:32 PM UTC+1, John M. wrote:

I’m looking at the documentation:
Class: Net::HTTP (Ruby 2.0.0)

And I notice two uses of Net::HTTP. Both are using GET requests. But
what’s the difference? When to use which?

It’s the usual tradeoff between convenience and extensiveness. The long
form allows you to pipeline requests, set more options on the request
(eg
headers etc.) but a lot of the time you just want to grab the content
from
a url and don’t need all the ceremony

Fred