Method: HTTPX::Plugins::H2C::ConnectionMethods#send

Defined in:
lib/httpx/plugins/h2c.rb

#send(request) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/httpx/plugins/h2c.rb', line 52

def send(request)
  return super if @h2c_handshake

  return super unless request.valid_h2c_verb? && request.scheme == "http"

  return super if @upgrade_protocol == "h2c"

  @h2c_handshake = true

  # build upgrade request
  request.headers.add("connection", "upgrade")
  request.headers.add("connection", "http2-settings")
  request.headers["upgrade"] = "h2c"
  request.headers["http2-settings"] = ::HTTP2::Client.settings_header(request.options.http2_settings)

  super
end