Class: GeniusReferrals::NetHTTPTransport
- Inherits:
-
Object
- Object
- GeniusReferrals::NetHTTPTransport
- Defined in:
- lib/genius_referrals/transport.rb
Instance Method Summary collapse
-
#request(method, url, headers:, body:, timeout:) ⇒ Object
Send one HTTP request using Ruby stdlib Net::HTTP.
Instance Method Details
#request(method, url, headers:, body:, timeout:) ⇒ Object
Send one HTTP request using Ruby stdlib Net::HTTP.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/genius_referrals/transport.rb', line 10 def request(method, url, headers:, body:, timeout:) uri = URI(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = uri.scheme == 'https' http.open_timeout = timeout http.read_timeout = timeout request_class = Net::HTTP.const_get(method.capitalize) request = request_class.new(uri) headers.each { |key, value| request[key] = value } request.body = body if body response = http.request(request) TransportResponse.new( status_code: response.code.to_i, headers: response.each_header.to_h, body: response.body.to_s ) end |