Class ActionDispatch::Request
In: lib/action_dispatch/http/request.rb
lib/action_dispatch/middleware/cookies.rb
lib/action_dispatch/middleware/flash.rb
Parent: Rack::Request

Methods

Included Modules

ActionDispatch::Http::Cache::Request ActionDispatch::Http::MimeNegotiation ActionDispatch::Http::Parameters ActionDispatch::Http::FilterParameters ActionDispatch::Http::Upload ActionDispatch::Http::URL

Constants

LOCALHOST = [/^127\.0\.0\.\d{1,3}$/, "::1", /^0:0:0:0:0:0:0:1(%.*)?$/].freeze
RFC2616 = %w(OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT)   List of HTTP request methods from the following RFCs: Hypertext Transfer Protocol — HTTP/1.1 (www.ietf.org/rfc/rfc2616.txt) HTTP Extensions for Distributed Authoring — WEBDAV (www.ietf.org/rfc/rfc2518.txt) Versioning Extensions to WebDAV (www.ietf.org/rfc/rfc3253.txt) Ordered Collections Protocol (WebDAV) (www.ietf.org/rfc/rfc3648.txt) Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol (www.ietf.org/rfc/rfc3744.txt) Web Distributed Authoring and Versioning (WebDAV) SEARCH (www.ietf.org/rfc/rfc5323.txt) PATCH Method for HTTP (www.ietf.org/rfc/rfc5789.txt)
RFC2518 = %w(PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK)
RFC3253 = %w(VERSION-CONTROL REPORT CHECKOUT CHECKIN UNCHECKOUT MKWORKSPACE UPDATE LABEL MERGE BASELINE-CONTROL MKACTIVITY)
RFC3648 = %w(ORDERPATCH)
RFC3744 = %w(ACL)
RFC5323 = %w(SEARCH)
RFC5789 = %w(PATCH)
HTTP_METHODS = RFC2616 + RFC2518 + RFC3253 + RFC3648 + RFC3744 + RFC5323 + RFC5789
HTTP_METHOD_LOOKUP = Hash.new { |h, m| h[m] = m.underscore.to_sym if HTTP_METHODS.include?(m) }
TRUSTED_PROXIES = /^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\./i   Which IP addresses are "trusted proxies" that can be stripped from the right-hand-side of X-Forwarded-For

Public Class methods

Public Instance methods

Override Rack‘s GET method to support indifferent access

Override Rack‘s POST method to support indifferent access

Returns the authorization header regardless of whether it was specified directly or through one of the proxy alternatives.

The request body is an IO input stream. If the RAW_POST_DATA environment variable is already set, wrap it in a StringIO.

Returns the content length of the request as an integer.

Is this a DELETE request? Equivalent to request.request_method == :delete.

Access the contents of the flash. Use flash["notice"] to read a notice you put there or flash["notice"] = "hello" to put a new one.

Is this a GET (or HEAD) request? Equivalent to request.request_method == :get.

Is this a HEAD request? Equivalent to request.method == :head.

Provides access to the request‘s HTTP headers, for example:

  request.headers["Content-Type"] # => "text/plain"

True if the request came from localhost, 127.0.0.1.

Returns the original value of the environment‘s REQUEST_METHOD, even if it was overridden by middleware. See request_method for more information.

Returns a symbol form of the method

Is this a POST request? Equivalent to request.request_method == :post.

Is this a PUT request? Equivalent to request.request_method == :put.

query_parameters()

Alias for GET

Read the request \body. This is useful for web services that need to work with raw requests directly.

Determines originating IP address. REMOTE_ADDR is the standard but will fail if the user is behind a proxy. HTTP_CLIENT_IP and/or HTTP_X_FORWARDED_FOR are set by proxies so check for these if REMOTE_ADDR is a proxy. HTTP_X_FORWARDED_FOR may be a comma- delimited list in the case of multiple chained proxies; the last address which is not trusted is the originating IP.

Returns the HTTP \method that the application should see. In the case where the \method was overridden by a middleware (for instance, if a HEAD request was converted to a GET, or if a _method parameter was used to determine the \method the application should use), this \method returns the overridden value, not the original.

Returns a symbol form of the request_method

request_parameters()

Alias for POST

TODO This should be broken apart into AD::Request::Session and probably be included by the session middleware.

Returns the lowercase name of the HTTP server software.

xhr?()

Alias for xml_http_request?

Returns true if the request‘s "X-Requested-With" header contains "XMLHttpRequest". (The Prototype Javascript library sends this header with every Ajax request.)

[Validate]