Functions
download(_:interceptor:to:)
public static func download(
_ urlRequest: URLRequestConvertible, interceptor: RequestInterceptor? = nil,
to destination: DownloadRequest.Destination? = nil
) -> DownloadRequest
Creates a DownloadRequest
using Session.default
to execute the specified urlRequest
and download
the result to the provided destination
.
Parameters
- urlRequest: The
URLRequestConvertible
value. - interceptor: The
RequestInterceptor
,nil
by default. - destination: The
DownloadRequest.Destination
closure used the determine the destination of the
Returns
The created DownloadRequest
.
download(_:method:parameters:encoder:headers:interceptor:to:)
public static func download<Parameters: Encodable>(
_ url: URLConvertible, method: HTTPMethod = .get, parameters: Parameters? = nil,
encoder: ParameterEncoder = URLEncodedFormParameterEncoder.default, headers: HTTPHeaders? = nil,
interceptor: RequestInterceptor? = nil, to destination: DownloadRequest.Destination? = nil
) -> DownloadRequest
Creates a DownloadRequest
using Session.default
to download the contents of the specified url
to the
provided destination
using the method
, encodable parameters
, encoder
, and headers
provided.
Note: If
destination
is not specified, the download will be moved to a temporary location determined by Alamofire.
Parameters
- url: The
URLConvertible
value. - method: The
HTTPMethod
,.get
by default. - parameters: The
Encodable
parameters,nil
by default. - encoder: The
ParameterEncoder
,URLEncodedFormParameterEncoder.default
by default. - headers: The
HTTPHeaders
,nil
by default. - interceptor: The
RequestInterceptor
,nil
by default. - destination: The
DownloadRequest.Destination
closure used the determine the destination of the
Returns
The created DownloadRequest
.
download(_:method:parameters:encoding:headers:interceptor:to:)
public static func download(
_ url: URLConvertible, method: HTTPMethod = .get, parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default, headers: HTTPHeaders? = nil,
interceptor: RequestInterceptor? = nil, to destination: DownloadRequest.Destination? = nil
) -> DownloadRequest
Creates a DownloadRequest
using Session.default
to download the contents of the specified url
to
the provided destination
using the method
, parameters
, encoding
, and headers
provided.
If destination
is not specified, the download will be moved to a temporary location determined by Alamofire.
Parameters
- url: The
URLConvertible
value. - method: The
HTTPMethod
,.get
by default. - parameters: The
Parameters
,nil
by default. - encoding: The
ParameterEncoding
,URLEncoding.default
by default. - headers: The
HTTPHeaders
,nil
by default. - interceptor: The
RequestInterceptor
,nil
by default. - destination: The
DownloadRequest.Destination
closure used the determine the destination of the
Returns
The created DownloadRequest
.
download(resumingWith:interceptor:to:)
public static func download(
resumingWith resumeData: Data, interceptor: RequestInterceptor? = nil,
to destination: DownloadRequest.Destination? = nil
) -> DownloadRequest
Creates a DownloadRequest
using the Session.default
from the resumeData
produced from a previous
DownloadRequest
cancellation to retrieve the contents of the original request and save them to the destination
.
Note: If
destination
is not specified, the download will be moved to a temporary location determined by Alamofire.
Note: On some versions of all Apple platforms (iOS 10 - 10.2, macOS 10.12 - 10.12.2, tvOS 10 - 10.1, watchOS 3 - 3.1.1),
resumeData
is broken on background URL session configurations. There's an underlying bug in theresumeData
generation logic where the data is written incorrectly and will always fail to resume the download. For more information about the bug and possible workarounds, please refer to the this Stack Overflow post.
Parameters
- resumeData: The resume
Data
. This is an opaque blob produced byURLSessionDownloadTask
when a task is - interceptor: The
RequestInterceptor
,nil
by default. - destination: The
DownloadRequest.Destination
closure used to determine the destination of the downloaded
Returns
The created DownloadRequest
.
request(_:interceptor:)
public static func request(
_ urlRequest: URLRequestConvertible, interceptor: RequestInterceptor? = nil
) -> DataRequest
Creates a DataRequest
using Session.default
to execute the specified urlRequest
.
Parameters
- urlRequest: The
URLRequestConvertible
value. - interceptor: The
RequestInterceptor
,nil
by default.
Returns
The created DataRequest
.
request(_:method:parameters:encoder:headers:interceptor:)
public static func request<Parameters: Encodable>(
_ url: URLConvertible, method: HTTPMethod = .get, parameters: Parameters? = nil,
encoder: ParameterEncoder = URLEncodedFormParameterEncoder.default, headers: HTTPHeaders? = nil,
interceptor: RequestInterceptor? = nil
) -> DataRequest
Creates a DataRequest
using Session.default
to retrieve the contents of the specified url
using the
method
, parameters
, encoding
, and headers
provided.
Parameters
- url: The
URLConvertible
value. - method: The
HTTPMethod
,.get
by default. - parameters: The
Encodable
parameters,nil
by default. - encoding: The
ParameterEncoder
,URLEncodedFormParameterEncoder.default
by default. - headers: The
HTTPHeaders
,nil
by default. - interceptor: The
RequestInterceptor
,nil
by default.
Returns
The created DataRequest
.
request(_:method:parameters:encoding:headers:interceptor:)
public static func request(
_ url: URLConvertible, method: HTTPMethod = .get, parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default, headers: HTTPHeaders? = nil,
interceptor: RequestInterceptor? = nil
) -> DataRequest
Creates a DataRequest
using Session.default
to retrieve the contents of the specified url
using the
method
, parameters
, encoding
, and headers
provided.
Parameters
- url: The
URLConvertible
value. - method: The
HTTPMethod
,.get
by default. - parameters: The
Parameters
,nil
by default. - encoding: The
ParameterEncoding
,URLEncoding.default
by default. - headers: The
HTTPHeaders
,nil
by default. - interceptor: The
RequestInterceptor
,nil
by default.
Returns
The created DataRequest
.
upload(_:to:method:headers:interceptor:fileManager:)
public static func upload(
_ data: Data, to convertible: URLConvertible, method: HTTPMethod = .post,
headers: HTTPHeaders? = nil, interceptor: RequestInterceptor? = nil,
fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
for the given Data
, URLRequest
components, and RequestInterceptor
.
Parameters
- data: The
Data
to upload. - convertible:
URLConvertible
value to be used as theURLRequest
'sURL
. - method:
HTTPMethod
for theURLRequest
..post
by default. - headers:
HTTPHeaders
value to be added to theURLRequest
.nil
by default. - interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
instance to be used by the returnedUploadRequest
..default
instance by
Returns
The created UploadRequest
.
upload(_:to:method:headers:interceptor:fileManager:)
public static func upload(
_ fileURL: URL, to convertible: URLConvertible, method: HTTPMethod = .post,
headers: HTTPHeaders? = nil, interceptor: RequestInterceptor? = nil,
fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
for the file at the given file URL
, using a URLRequest
from the provided
components and RequestInterceptor
.
Parameters
- fileURL: The
URL
of the file to upload. - convertible:
URLConvertible
value to be used as theURLRequest
'sURL
. - method:
HTTPMethod
for theURLRequest
..post
by default. - headers:
HTTPHeaders
value to be added to theURLRequest
.nil
by default. - interceptor:
RequestInterceptor
value to be used by the returnedUploadRequest
.nil
by default. - fileManager:
FileManager
instance to be used by the returnedUploadRequest
..default
instance by
Returns
The created UploadRequest
.
upload(_:to:method:headers:interceptor:fileManager:)
public static func upload(
_ stream: InputStream, to convertible: URLConvertible, method: HTTPMethod = .post,
headers: HTTPHeaders? = nil, interceptor: RequestInterceptor? = nil,
fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
from the InputStream
provided using a URLRequest
from the provided components and
RequestInterceptor
.
Parameters
- stream: The
InputStream
that provides the data to upload. - convertible:
URLConvertible
value to be used as theURLRequest
'sURL
. - method:
HTTPMethod
for theURLRequest
..post
by default. - headers:
HTTPHeaders
value to be added to theURLRequest
.nil
by default. - interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
instance to be used by the returnedUploadRequest
..default
instance by
Returns
The created UploadRequest
.
upload(_:with:interceptor:fileManager:)
public static func upload(
_ data: Data, with convertible: URLRequestConvertible, interceptor: RequestInterceptor? = nil,
fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
for the given Data
using the URLRequestConvertible
value and RequestInterceptor
.
Parameters
- data: The
Data
to upload. - convertible:
URLRequestConvertible
value to be used to create theURLRequest
. - interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
instance to be used by the returnedUploadRequest
..default
instance by
Returns
The created UploadRequest
.
upload(_:with:interceptor:fileManager:)
public static func upload(
_ fileURL: URL, with convertible: URLRequestConvertible, interceptor: RequestInterceptor? = nil,
fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
for the file at the given file URL
using the URLRequestConvertible
value and
RequestInterceptor
.
Parameters
- fileURL: The
URL
of the file to upload. - convertible:
URLRequestConvertible
value to be used to create theURLRequest
. - interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
instance to be used by the returnedUploadRequest
..default
instance by
Returns
The created UploadRequest
.
upload(_:with:interceptor:fileManager:)
public static func upload(
_ stream: InputStream, with convertible: URLRequestConvertible,
interceptor: RequestInterceptor? = nil, fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
from the provided InputStream
using the URLRequestConvertible
value and
RequestInterceptor
.
Parameters
- stream: The
InputStream
that provides the data to upload. - convertible:
URLRequestConvertible
value to be used to create theURLRequest
. - interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
instance to be used by the returnedUploadRequest
..default
instance by
Returns
The created UploadRequest
.
upload(multipartFormData:to:usingThreshold:method:headers:interceptor:fileManager:)
public static func upload(
multipartFormData: @escaping (MultipartFormData) -> Void, to url: URLConvertible,
usingThreshold encodingMemoryThreshold: UInt64 = MultipartFormData.encodingMemoryThreshold,
method: HTTPMethod = .post, headers: HTTPHeaders? = nil, interceptor: RequestInterceptor? = nil,
fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
for the multipart form data built using a closure and sent using the provided
URLRequest
components and RequestInterceptor
.
It is important to understand the memory implications of uploading MultipartFormData
. If the cumulative
payload is small, encoding the data in-memory and directly uploading to a server is the by far the most
efficient approach. However, if the payload is too large, encoding the data in-memory could cause your app to
be terminated. Larger payloads must first be written to disk using input and output streams to keep the memory
footprint low, then the data can be uploaded as a stream from the resulting file. Streaming from disk MUST be
used for larger payloads such as video content.
The encodingMemoryThreshold
parameter allows Alamofire to automatically determine whether to encode in-memory
or stream from disk. If the content length of the MultipartFormData
is below the encodingMemoryThreshold
,
encoding takes place in-memory. If the content length exceeds the threshold, the data is streamed to disk
during the encoding process. Then the result is uploaded as data or as a stream depending on which encoding
technique was used.
Parameters
- multipartFormData:
MultipartFormData
building closure. - convertible:
URLConvertible
value to be used as theURLRequest
'sURL
. - encodingMemoryThreshold: Byte threshold used to determine whether the form data is encoded into memory or
- method:
HTTPMethod
for theURLRequest
..post
by default. - headers:
HTTPHeaders
value to be added to theURLRequest
.nil
by default. - interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
to be used if the form data exceeds the memory threshold and is
Returns
The created UploadRequest
.
upload(multipartFormData:to:usingThreshold:method:headers:interceptor:fileManager:)
public static func upload(
multipartFormData: MultipartFormData, to url: URLConvertible,
usingThreshold encodingMemoryThreshold: UInt64 = MultipartFormData.encodingMemoryThreshold,
method: HTTPMethod = .post, headers: HTTPHeaders? = nil, interceptor: RequestInterceptor? = nil,
fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
for the prebuilt MultipartFormData
value using the provided URLRequest
components
and RequestInterceptor
.
It is important to understand the memory implications of uploading MultipartFormData
. If the cumulative
payload is small, encoding the data in-memory and directly uploading to a server is the by far the most
efficient approach. However, if the payload is too large, encoding the data in-memory could cause your app to
be terminated. Larger payloads must first be written to disk using input and output streams to keep the memory
footprint low, then the data can be uploaded as a stream from the resulting file. Streaming from disk MUST be
used for larger payloads such as video content.
The encodingMemoryThreshold
parameter allows Alamofire to automatically determine whether to encode in-memory
or stream from disk. If the content length of the MultipartFormData
is below the encodingMemoryThreshold
,
encoding takes place in-memory. If the content length exceeds the threshold, the data is streamed to disk
during the encoding process. Then the result is uploaded as data or as a stream depending on which encoding
technique was used.
Parameters
- multipartFormData:
MultipartFormData
instance to upload. - url:
URLConvertible
value to be used as theURLRequest
'sURL
. - encodingMemoryThreshold: Byte threshold used to determine whether the form data is encoded into memory or
- method:
HTTPMethod
for theURLRequest
..post
by default. - headers:
HTTPHeaders
value to be added to theURLRequest
.nil
by default. - interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
to be used if the form data exceeds the memory threshold and is
Returns
The created UploadRequest
.
upload(multipartFormData:with:usingThreshold:interceptor:fileManager:)
public static func upload(
multipartFormData: @escaping (MultipartFormData) -> Void, with request: URLRequestConvertible,
usingThreshold encodingMemoryThreshold: UInt64 = MultipartFormData.encodingMemoryThreshold,
interceptor: RequestInterceptor? = nil, fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
using a MultipartFormData
building closure, the provided URLRequestConvertible
value, and a RequestInterceptor
.
It is important to understand the memory implications of uploading MultipartFormData
. If the cumulative
payload is small, encoding the data in-memory and directly uploading to a server is the by far the most
efficient approach. However, if the payload is too large, encoding the data in-memory could cause your app to
be terminated. Larger payloads must first be written to disk using input and output streams to keep the memory
footprint low, then the data can be uploaded as a stream from the resulting file. Streaming from disk MUST be
used for larger payloads such as video content.
The encodingMemoryThreshold
parameter allows Alamofire to automatically determine whether to encode in-memory
or stream from disk. If the content length of the MultipartFormData
is below the encodingMemoryThreshold
,
encoding takes place in-memory. If the content length exceeds the threshold, the data is streamed to disk
during the encoding process. Then the result is uploaded as data or as a stream depending on which encoding
technique was used.
Parameters
- multipartFormData:
MultipartFormData
building closure. - request:
URLRequestConvertible
value to be used to create theURLRequest
. - encodingMemoryThreshold: Byte threshold used to determine whether the form data is encoded into memory or
- interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
to be used if the form data exceeds the memory threshold and is
Returns
The created UploadRequest
.
upload(multipartFormData:with:usingThreshold:interceptor:fileManager:)
public static func upload(
multipartFormData: MultipartFormData, with request: URLRequestConvertible,
usingThreshold encodingMemoryThreshold: UInt64 = MultipartFormData.encodingMemoryThreshold,
interceptor: RequestInterceptor? = nil, fileManager: FileManager = .default
) -> UploadRequest
Creates an UploadRequest
for the prebuilt MultipartFormData
value using the providing URLRequestConvertible
value and RequestInterceptor
.
It is important to understand the memory implications of uploading MultipartFormData
. If the cumulative
payload is small, encoding the data in-memory and directly uploading to a server is the by far the most
efficient approach. However, if the payload is too large, encoding the data in-memory could cause your app to
be terminated. Larger payloads must first be written to disk using input and output streams to keep the memory
footprint low, then the data can be uploaded as a stream from the resulting file. Streaming from disk MUST be
used for larger payloads such as video content.
The encodingMemoryThreshold
parameter allows Alamofire to automatically determine whether to encode in-memory
or stream from disk. If the content length of the MultipartFormData
is below the encodingMemoryThreshold
,
encoding takes place in-memory. If the content length exceeds the threshold, the data is streamed to disk
during the encoding process. Then the result is uploaded as data or as a stream depending on which encoding
technique was used.
Parameters
- multipartFormData:
MultipartFormData
instance to upload. - request:
URLRequestConvertible
value to be used to create theURLRequest
. - encodingMemoryThreshold: Byte threshold used to determine whether the form data is encoded into memory or
- interceptor:
RequestInterceptor
value to be used by the returnedDataRequest
.nil
by default. - fileManager:
FileManager
instance to be used by the returnedUploadRequest
..default
instance by
Returns
The created UploadRequest
.