Functions

The following functions are available globally.

Data Request

URL Request

  • Creates a DownloadRequest using the default SessionManager to retrieve the contents of the specified url, method, parameters, encoding, headers and save them to the destination.

    If destination is not specified, the contents will remain in the temporary location determined by the underlying URL session.

    Declaration

    Swift

    @discardableResult
    public func download(
    	_ url: URLConvertible,
    	method: HTTPMethod = .get,
    	parameters: Parameters? = nil,
    	encoding: ParameterEncoding = URLEncoding.default,
    	headers: HTTPHeaders? = nil,
    	to destination: DownloadRequest.DownloadFileDestination? = nil)
    -> DownloadRequest

    Parameters

    url

    The URL.

    method

    The HTTP method. .get by default.

    parameters

    The parameters. nil by default.

    encoding

    The parameter encoding. URLEncoding.default by default.

    headers

    The HTTP headers. nil by default.

    destination

    The closure used to determine the destination of the downloaded file. nil by default.

    Return Value

    The created DownloadRequest.

  • Creates a DownloadRequest using the default SessionManager to retrieve the contents of a URL based on the specified urlRequest and save them to the destination.

    If destination is not specified, the contents will remain in the temporary location determined by the underlying URL session.

    Declaration

    Swift

    @discardableResult
    public func download(
    	_ urlRequest: URLRequestConvertible,
    	to destination: DownloadRequest.DownloadFileDestination? = nil)
    -> DownloadRequest

    Parameters

    urlRequest

    The URL request.

    destination

    The closure used to determine the destination of the downloaded file. nil by default.

    Return Value

    The created DownloadRequest.

Resume Data

  • Creates a DownloadRequest using the default SessionManager from the resumeData produced from a previous request cancellation to retrieve the contents of the original request and save them to the destination.

    If destination is not specified, the contents will remain in the temporary location determined by the underlying URL session.

    On the latest release of all the Apple platforms (iOS 10, macOS 10.12, tvOS 10, watchOS 3), resumeData is broken on background URL session configurations. There’s an underlying bug in the resumeData 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 following Stack Overflow post:

    Declaration

    Swift

    @discardableResult
    public func download(
    	resumingWith resumeData: Data,
    	to destination: DownloadRequest.DownloadFileDestination? = nil)
    -> DownloadRequest

    Parameters

    resumeData

    The resume data. This is an opaque data blob produced by URLSessionDownloadTask when a task is cancelled. See URLSession -downloadTask(withResumeData:) for additional information.

    destination

    The closure used to determine the destination of the downloaded file. nil by default.

    Return Value

    The created DownloadRequest.

File

Data

InputStream

MultipartFormData

  • Encodes multipartFormData using encodingMemoryThreshold with the default SessionManager and calls encodingCompletion with new UploadRequest using the url, method and headers.

    It is important to understand the memory implications of uploading MultipartFormData. If the cummulative 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.

    Declaration

    Swift

    public func upload(
    	multipartFormData: @escaping (MultipartFormData) -> Void,
    	usingThreshold encodingMemoryThreshold: UInt64 = SessionManager.multipartFormDataEncodingMemoryThreshold,
    	to url: URLConvertible,
    	method: HTTPMethod = .post,
    	headers: HTTPHeaders? = nil,
    	encodingCompletion: ((SessionManager.MultipartFormDataEncodingResult) -> Void)?)

    Parameters

    multipartFormData

    The closure used to append body parts to the MultipartFormData.

    encodingMemoryThreshold

    The encoding memory threshold in bytes. multipartFormDataEncodingMemoryThreshold by default.

    url

    The URL.

    method

    The HTTP method. .post by default.

    headers

    The HTTP headers. nil by default.

    encodingCompletion

    The closure called when the MultipartFormData encoding is complete.

  • Encodes multipartFormData using encodingMemoryThreshold and the default SessionManager and calls encodingCompletion with new UploadRequest using the urlRequest.

    It is important to understand the memory implications of uploading MultipartFormData. If the cummulative 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.

    Declaration

    Swift

    public func upload(
    	multipartFormData: @escaping (MultipartFormData) -> Void,
    	usingThreshold encodingMemoryThreshold: UInt64 = SessionManager.multipartFormDataEncodingMemoryThreshold,
    	with urlRequest: URLRequestConvertible,
    	encodingCompletion: ((SessionManager.MultipartFormDataEncodingResult) -> Void)?)

    Parameters

    multipartFormData

    The closure used to append body parts to the MultipartFormData.

    encodingMemoryThreshold

    The encoding memory threshold in bytes. multipartFormDataEncodingMemoryThreshold by default.

    urlRequest

    The URL request.

    encodingCompletion

    The closure called when the MultipartFormData encoding is complete.

Hostname and Port

  • Creates a StreamRequest using the default SessionManager for bidirectional streaming with the hostname and port.

    If startRequestsImmediately is true, the request will have resume() called before being returned.

    Declaration

    Swift

    @available(iOS 9.0, macOS 10.11, tvOS 9.0, *)
    @discardableResult
    public func stream(withHostName hostName: String, port: Int) -> StreamRequest

    Parameters

    hostName

    The hostname of the server to connect to.

    port

    The port of the server to connect to.

    Return Value

    The created StreamRequest.

NetService

  • Creates a StreamRequest using the default SessionManager for bidirectional streaming with the netService.

    If startRequestsImmediately is true, the request will have resume() called before being returned.

    Declaration

    Swift

    @available(iOS 9.0, macOS 10.11, tvOS 9.0, *)
    @discardableResult
    public func stream(with netService: NetService) -> StreamRequest

    Parameters

    netService

    The net service used to identify the endpoint.

    Return Value

    The created StreamRequest.

  • Declaration

    Swift

    public func < (lhs: EKWeekday, rhs: EKWeekday) -> Bool
  • Declaration

    Swift

    public func == (lhs: EKWeekday, rhs: EKWeekday) -> Bool