Module: HTTPX::Plugins::H2C

Defined in:
lib/httpx/plugins/h2c.rb,
sig/plugins/h2c.rbs

Overview

This plugin adds support for upgrading a plaintext HTTP/1.1 connection to HTTP/2 (https://datatracker.ietf.org/doc/html/rfc7540#section-3.2)

https://gitlab.com/os85/httpx/wikis/Connection-Upgrade#h2c

Defined Under Namespace

Modules: ConnectionMethods, H2CParser, OptionsMethods, RequestMethods, _H2COptions

Constant Summary collapse

VALID_H2C_VERBS =

Returns:

  • (Array[verb])
%w[GET OPTIONS HEAD].freeze

Class Method Summary collapse

Class Method Details

.call(connection, request, response) ⇒ void

This method returns an undefined value.

Parameters:



19
20
21
# File 'lib/httpx/plugins/h2c.rb', line 19

def call(connection, request, response)
  connection.upgrade_to_h2c(request, response)
end

.configurevoid

This method returns an undefined value.

Parameters:



7
# File 'sig/plugins/h2c.rbs', line 7

def self.configure: (singleton(Session)) -> void

.extra_options(options) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/httpx/plugins/h2c.rb', line 23

def extra_options(options)
  options.merge(
    h2c_class: Class.new(options.http2_class) { include(H2CParser) },
    max_concurrent_requests: 1,
    upgrade_handlers: options.upgrade_handlers.merge("h2c" => self),
  )
end

.load_dependencies(klass) ⇒ void

This method returns an undefined value.

Parameters:

  • (Object)


15
16
17
# File 'lib/httpx/plugins/h2c.rb', line 15

def load_dependencies(klass)
  klass.plugin(:upgrade)
end