-
A set of options to be executed prior to moving a downloaded file from the temporary
See moreURL
to the destinationURL
.Declaration
Swift
public struct Options : OptionSet
-
A closure executed once a download request has successfully completed in order to determine where to move the temporary file written to during the download process. The closure takes two arguments: the temporary file URL and the URL response, and returns a two arguments: the file URL where the temporary file should be moved and the options defining how the file should be moved.
Declaration
Swift
public typealias Destination = (_ temporaryURL: URL, _ response: HTTPURLResponse) -> (destinationURL: URL, options: Options)
-
Creates a download file destination closure which uses the default file manager to move the temporary file to a file URL in the first available directory with the specified search path directory and search path domain mask.
Declaration
Swift
public class func suggestedDownloadDestination(for directory: FileManager.SearchPathDirectory = .documentDirectory, in domain: FileManager.SearchPathDomainMask = .userDomainMask, options: Options = []) -> Destination
Parameters
directory
The search path directory.
.documentDirectory
by default.domain
The search path domain mask.
.userDomainMask
by default.options
DownloadRequest.Options
used when moving the downloaded file to its destination. None by default.Return Value
The
Destination
closure. -
Type describing the source used to create the underlying
See moreURLSessionDownloadTask
.Declaration
Swift
public enum Downloadable
-
If the download is resumable and eventually cancelled, this value may be used to resume the download using the
download(resumingWith data:)
API.Declaration
Swift
public var resumeData: Data? { get }
-
If the download is successful, the
URL
where the file was downloaded.Declaration
Swift
public var fileURL: URL? { get }
-
Downloadable
value used for this instance.Declaration
Swift
public let downloadable: Downloadable
-
Creates a
URLSessionTask
from the provided resume data.Declaration
Swift
public func task(forResumeData data: Data, using session: URLSession) -> URLSessionTask
Parameters
data
Data
used to resume the download.session
URLSession
used to create theURLSessionTask
.Return Value
The
URLSessionTask
created. -
Cancels the instance. Once cancelled, a
DownloadRequest
can no longer be resumed or suspended.Note
This method will NOT produce resume data. If you wish to cancel and produce resume data, use
cancel(producingResumeData:)
orcancel(byProducingResumeData:)
.Declaration
Swift
@discardableResult public override func cancel() -> Self
Return Value
The instance.
-
Cancels the instance, optionally producing resume data. Once cancelled, a
DownloadRequest
can no longer be resumed or suspended.Note
If
producingResumeData
istrue
, theresumeData
property will be populated with any resume data, if available.Declaration
Swift
@discardableResult public func cancel(producingResumeData shouldProduceResumeData: Bool) -> Self
Return Value
The instance.
-
Cancels the instance while producing resume data. Once cancelled, a
DownloadRequest
can no longer be resumed or suspended.Note
The resume data passed to the completion handler will also be available on the instance’s
resumeData
property.Declaration
Swift
@discardableResult public func cancel(byProducingResumeData completionHandler: @escaping (_ data: Data?) -> Void) -> Self
Parameters
completionHandler
The completion handler that is called when the download has been successfully cancelled. It is not guaranteed to be called on a particular queue, so you may want use an appropriate queue to perform your work.
Return Value
The instance.
-
Validates the request, using the specified closure.
Note
If validation fails, subsequent calls to response handlers will have an associated error.
Declaration
Swift
@discardableResult public func validate(_ validation: @escaping Validation) -> Self
Parameters
validation
Validation
closure to validate the response.Return Value
The instance.
-
Adds a handler to be called once the request has finished.
Declaration
Swift
@discardableResult public func response( queue: DispatchQueue = .main, completionHandler: @escaping (DownloadResponse<URL?>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by default.completionHandler
The code to be executed once the request has finished.
Return Value
The request.
-
Adds a handler to be called once the request has finished.
Declaration
Swift
@discardableResult public func response<T: DownloadResponseSerializerProtocol>( queue: DispatchQueue = .main, responseSerializer: T, completionHandler: @escaping (DownloadResponse<T.SerializedObject>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by default.responseSerializer
The response serializer responsible for serializing the request, response, and data contained in the destination
URL
.completionHandler
The code to be executed once the request has finished.
Return Value
The request.
-
Adds a handler to be called once the request has finished.
Declaration
Swift
@discardableResult public func responseData( queue: DispatchQueue = .main, completionHandler: @escaping (DownloadResponse<Data>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by default.completionHandler
The code to be executed once the request has finished.
Return Value
The request.
-
Adds a handler to be called once the request has finished.
Declaration
Swift
@discardableResult public func responseString( queue: DispatchQueue = .main, encoding: String.Encoding? = nil, completionHandler: @escaping (DownloadResponse<String>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by default.encoding
The string encoding. Defaults to
nil
, in which case the encoding will be determined from the server response, falling back to the default HTTP character set,ISO-8859-1
.completionHandler
A closure to be executed once the request has finished.
Return Value
The request.
-
Adds a handler to be called once the request has finished.
Declaration
Swift
@discardableResult public func responseJSON( queue: DispatchQueue = .main, options: JSONSerialization.ReadingOptions = .allowFragments, completionHandler: @escaping (DownloadResponse<Any>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by default.options
The JSON serialization reading options.
.allowFragments
by default.completionHandler
A closure to be executed once the request has finished.
Return Value
The request.
-
A closure used to validate a request that takes a URL request, a URL response, a temporary URL and a destination URL, and returns whether the request was valid.
Declaration
Swift
public typealias Validation = (_ request: URLRequest?, _ response: HTTPURLResponse, _ fileURL: URL?) -> ValidationResult
-
Validates that the response has a status code in the specified sequence.
If validation fails, subsequent calls to response handlers will have an associated error.
Declaration
Swift
@discardableResult public func validate<S>(statusCode acceptableStatusCodes: S) -> Self where S : Sequence, S.Element == Int
Parameters
range
The range of acceptable status codes.
Return Value
The request.
-
Validates that the response has a content type in the specified sequence.
If validation fails, subsequent calls to response handlers will have an associated error.
Declaration
Swift
@discardableResult public func validate<S: Sequence>(contentType acceptableContentTypes: @escaping @autoclosure () -> S) -> Self where S.Iterator.Element == String
Parameters
contentType
The acceptable content types, which may specify wildcard types and/or subtypes.
Return Value
The request.
-
Validates that the response has a status code in the default acceptable range of 200…299, and that the content type matches any specified in the Accept HTTP header field.
If validation fails, subsequent calls to response handlers will have an associated error.
Declaration
Swift
@discardableResult public func validate() -> Self
Return Value
The request.