class WEBrick::HTTPProxyServer
An HTTP Proxy server which proxies GET, HEAD and POST requests.
To create a simple proxy server:
require 'webrick' require 'webrick/httpproxy' proxy = WEBrick::HTTPProxyServer.new Port: 8000 trap 'INT' do proxy.shutdown end trap 'TERM' do proxy.shutdown end proxy.start
See ::new for proxy-specific configuration items.
Modifying proxied responses
To modify content the proxy server returns use the :ProxyContentHandler option:
handler = proc do |req, res| if res['content-type'] == 'text/plain' then res.body << "\nThis content was proxied!\n" end end proxy = WEBrick::HTTPProxyServer.new Port: 8000, ProxyContentHandler: handler
Constants
- HopByHop
-
Some header fields should not be transferred.
- ShouldNotTransfer
Public Class Methods
(?::Hash[untyped, untyped] config, ?untyped default) → void
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/lib/webrick/httpproxy.rb, line 84 def initialize(config={}, default=Config::HTTP) super(config, default) c = @config @via = "#{c[:HTTPVersion]} #{c[:ServerName]}:#{c[:Port]}" end
Proxy server configurations. The proxy server handles the following configuration items in addition to those supported by HTTPServer:
- :ProxyAuthProc
-
Called with a request and response to authorize a request
- :ProxyVia
-
Appended to the via header
- :ProxyURI
-
The proxy serverโs
URI - :ProxyContentHandler
-
Called with a request and response and allows modification of the response
- :ProxyTimeout
-
Sets the proxy timeouts to 30 seconds for open and 60 seconds for read operations
Calls superclass method
Public Instance Methods
(untyped src, untyped dst) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 45
def choose_header: (untyped src, untyped dst) -> untyped
(untyped uri, untyped upstream) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 57
def create_net_http: (untyped uri, untyped upstream) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 26
def do_CONNECT: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 28
def do_GET: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 30
def do_HEAD: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 34
def do_OPTIONS: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 32
def do_POST: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res, untyped req_class, ?untyped? body_stream) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 59
def perform_proxy_request: (HTTPRequest req, HTTPResponse res, untyped req_class, ?untyped? body_stream) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 20
def proxy_auth: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 24
def proxy_service: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 22
def proxy_uri: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 18
def service: (HTTPRequest req, HTTPResponse res) -> untyped
:stopdoc:
(untyped h) → (untyped | nil)
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 51
def set_via: (untyped h) -> (untyped | nil)
(HTTPRequest req, HTTPResponse res) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 53
def setup_proxy_header: (HTTPRequest req, HTTPResponse res) -> untyped
(HTTPRequest req, HTTPResponse res, untyped header) → untyped
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 55
def setup_upstream_proxy_authentication: (HTTPRequest req, HTTPResponse res, untyped header) -> untyped
(untyped f) → (untyped | ::Array[untyped])
Source
# File vendor/bundle/ruby/4.0.0/gems/webrick-1.9.2/sig/httpproxy.rbs, line 43
def split_field: (untyped f) -> (untyped | ::Array[untyped])