Method: Gem::Net::HTTP::Persistent#request
- Defined in:
- lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
#request(uri, req = nil, &block) ⇒ Object
Makes a request on uri. If req is nil a Gem::Net::HTTP::Get is performed against uri.
If a block is passed #request behaves like Gem::Net::HTTP#request (the body of the response will not have been read).
req must be a Gem::Net::HTTPGenericRequest subclass (see Gem::Net::HTTP for a list).
893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 |
# File 'lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb', line 893 def request uri, req = nil, &block uri = Gem::URI uri req = request_setup req || uri response = nil connection_for uri do |connection| http = connection.http begin connection.requests += 1 response = http.request req, &block if req.connection_close? or (response.http_version <= '1.0' and not response.connection_keep_alive?) or response.connection_close? then finish connection end rescue Exception # make sure to close the connection when it was interrupted finish connection raise ensure connection.last_use = Time.now end end @http_versions["#{uri.hostname}:#{uri.port}"] ||= response.http_version response end |