RedirectHandler
public protocol RedirectHandler : Sendable
A type that handles how an HTTP redirect response from a remote server should be redirected to the new request.
-
Determines how the HTTP redirect response should be redirected to the new request.
The
completion
closure should be passed one of three possible options:- The new request specified by the redirect (this is the most common use case).
- A modified version of the new request (you may want to route it somewhere else).
- A
nil
value to deny the redirect request and return the body of the redirect response.
Declaration
Swift
func task(_ task: URLSessionTask, willBeRedirectedTo request: URLRequest, for response: HTTPURLResponse, completion: @escaping (URLRequest?) -> Void)
Parameters
task
The
URLSessionTask
whose request resulted in a redirect.request
The
URLRequest
to the new location specified by the redirect response.response
The
HTTPURLResponse
containing the server’s response to the original request.completion
The closure to execute containing the new
URLRequest
, a modifiedURLRequest
, ornil
.
-
follow
Extension methodProvides a
Redirector
which follows redirects. Equivalent toRedirector.follow
.Declaration
Swift
public static var follow: Redirector { get }
-
doNotFollow
Extension methodProvides a
Redirector
which does not follow redirects. Equivalent toRedirector.doNotFollow
.Declaration
Swift
public static var doNotFollow: Redirector { get }
-
modify(using:
Extension method) Creates a
Redirector
which modifies the redirectedURLRequest
using the provided closure.Declaration
Swift
public static func modify(using closure: @escaping @Sendable (URLSessionTask, URLRequest, HTTPURLResponse) -> URLRequest?) -> Redirector
Parameters
closure
Closure used to modify the redirect.
Return Value
The
Redirector
.