Public: Follow HTTP 301, 302, 303, 307, and 308 redirects.
For HTTP 301, 302, and 303, the original GET, POST, PUT, DELETE, or PATCH request gets converted into a GET. With ‘:standards_compliant => true`, however, the HTTP method after 301/302 remains unchanged. This allows you to opt into HTTP/1.1 compliance and act unlike the major web browsers.
This middleware currently only works with synchronous requests; i.e. it doesn’t support parallelism.
If you wish to persist cookies across redirects, you could use the faraday-cookie_jar gem:
Faraday.new(:url => url) do |faraday|
faraday.use FaradayMiddleware::FollowRedirects
faraday.use :cookie_jar
faraday.adapter Faraday.default_adapter
end
Constant Summary collapse
HTTP methods for which 30x redirects can be followed
Set.new [:head, :options, :get, :post, :put, :patch, :delete]
HTTP redirect status codes that this middleware implements
Set.new [301, 302, 303, 307, 308]
Keys in env hash which will get cleared between requests
Set.new [:status, :response, :response_headers]
Default value for max redirects followed
3
Regex that matches characters that need to be escaped in URLs, sans the “%” character which we assume already represents an escaped sequence.
/[^\-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]%]/
Public: Initialize the middleware.
Public: Initialize the middleware.
options - An options Hash (default: {}):
:limit - A Numeric redirect limit (default: 3)
:standards_compliant - A Boolean indicating whether to respect
the HTTP spec when following 301/302
(default: false)
:callback - A callable that will be called on redirects
with the old and new envs
63 64 65 66 67 68 69
# File 'lib/github_api/response/follow_redirects.rb', line 63 def initialize(app, options = {}) super(app) @options = options @convert_to_get = Set.new [303] @convert_to_get << 301 << 302 unless standards_compliant? endInstance Method Details #call(env) ⇒ Object
71 72 73
# File 'lib/github_api/response/follow_redirects.rb', line 71 def call(env) perform_with_redirection(env, follow_limit) end
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4