Method: H2::Client#request

Defined in:
lib/h2/client.rb

#request(method:, path:, headers: {}, params: {}, body: nil) {|H2::Stream| ... } ⇒ H2::Stream

initiate a Stream by making a request with the given HTTP method

Parameters:

  • method (Symbol)

    HTTP request method

  • path (String)

    request path

  • headers (Hash) (defaults to: {})

    request headers

  • params (Hash) (defaults to: {})

    request query string parameters

  • body (String) (defaults to: nil)

    request body

Yields:

Returns:



144
145
146
147
148
149
150
151
152
153
154
# File 'lib/h2/client.rb', line 144

def request method:, path:, headers: {}, params: {}, body: nil, &block
  connect unless connected?
  s = @client.new_stream
  add_params params, path unless params.empty?
  stream = add_stream method: method, path: path, stream: s, &block

  h = build_headers method: method, path: path, headers: headers
  s.headers h, end_stream: body.nil?
  s.data body if body
  stream
end