SessionManager
open class SessionManager
Responsible for creating and managing Request objects, as well as their underlying NSURLSession.
-
Defines whether the
MultipartFormDataencoding was successful and contains result of the encoding as associated values.- Success: Represents a successful
MultipartFormDataencoding and contains the newUploadRequestalong with streaming information. - Failure: Used to represent a failure in the
MultipartFormDataencoding and also contains the encoding error.
Declaration
Swift
public enum MultipartFormDataEncodingResult - Success: Represents a successful
-
A default instance of
SessionManager, used by top-level Alamofire request methods, and suitable for use directly for any ad hoc requests.Declaration
Swift
open static let `default`: SessionManager = -
Creates default values for the
Accept-Encoding
,Accept-Language
andUser-Agent
headers.Declaration
Swift
open static let defaultHTTPHeaders: HTTPHeaders = -
Default memory threshold used when encoding
MultipartFormDatain bytes.Declaration
Swift
open static let multipartFormDataEncodingMemoryThreshold: UInt64 = 10_000_000 -
The underlying session.
Declaration
Swift
open let session: URLSession -
The session delegate handling all the task and session delegate callbacks.
Declaration
Swift
open let delegate: SessionDelegate -
Whether to start requests immediately after being constructed.
trueby default.Declaration
Swift
open var startRequestsImmediately: Bool = true -
The request adapter called each time a new request is created.
Declaration
Swift
open var adapter: RequestAdapter? -
The request retrier called each time a request encounters an error to determine whether to retry the request.
Declaration
Swift
open var retrier: RequestRetrier? -
The background completion handler closure provided by the UIApplicationDelegate
application:handleEventsForBackgroundURLSession:completionHandler:method. By setting the background completion handler, the SessionDelegatesessionDidFinishEventsForBackgroundURLSessionclosure implementation will automatically call the handler.If you need to handle your own events before the handler is called, then you need to override the SessionDelegate
sessionDidFinishEventsForBackgroundURLSessionand manually call the handler when finished.nilby default.Declaration
Swift
open var backgroundCompletionHandler: (() -> Void)?
-
Creates an instance with the specified
configuration,delegateandserverTrustPolicyManager.Declaration
Swift
public init( configuration: URLSessionConfiguration = URLSessionConfiguration.default, delegate: SessionDelegate = SessionDelegate(), serverTrustPolicyManager: ServerTrustPolicyManager? = nil) -
Declaration
Swift
public init?( session: URLSession, delegate: SessionDelegate, serverTrustPolicyManager: ServerTrustPolicyManager? = nil)
-
Creates a
DataRequestto retrieve the contents of the specifiedurl,method,parameters,encodingandheaders.Declaration
Swift
open func request( _ url: URLConvertible, method: HTTPMethod = .get, parameters: Parameters? = nil, encoding: ParameterEncoding = URLEncoding.default, headers: HTTPHeaders? = nil) -> DataRequest -
Creates a
DataRequestto retrieve the contents of a URL based on the specifiedurlRequest.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func request(_ urlRequest: URLRequestConvertible) -> DataRequest
-
Creates a
DownloadRequestto retrieve the contents the specifiedurl,method,parameters,encoding,headersand save them to thedestination.If
destinationis not specified, the contents will remain in the temporary location determined by the underlying URL session.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func download( _ url: URLConvertible, method: HTTPMethod = .get, parameters: Parameters? = nil, encoding: ParameterEncoding = URLEncoding.default, headers: HTTPHeaders? = nil, to destination: DownloadRequest.DownloadFileDestination? = nil) -> DownloadRequest -
Creates a
DownloadRequestto retrieve the contents of a URL based on the specifiedurlRequestand save them to thedestination.If
destinationis not specified, the contents will remain in the temporary location determined by the underlying URL session.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func download( _ urlRequest: URLRequestConvertible, to destination: DownloadRequest.DownloadFileDestination? = nil) -> DownloadRequest
-
Creates a
DownloadRequestfrom theresumeDataproduced from a previous request cancellation to retrieve the contents of the original request and save them to thedestination.If
destinationis not specified, the contents will remain in the temporary location determined by the underlying URL session.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func download( resumingWith resumeData: Data, to destination: DownloadRequest.DownloadFileDestination? = nil) -> DownloadRequest
-
Creates an
UploadRequestfrom the specifiedurl,methodandheadersfor uploading thefile.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func upload( _ fileURL: URL, to url: URLConvertible, method: HTTPMethod = .post, headers: HTTPHeaders? = nil) -> UploadRequest -
Creates a
UploadRequestfrom the specifiedurlRequestfor uploading thefile.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func upload(_ fileURL: URL, with urlRequest: URLRequestConvertible) -> UploadRequest
-
Creates an
UploadRequestfrom the specifiedurl,methodandheadersfor uploading thedata.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func upload( _ data: Data, to url: URLConvertible, method: HTTPMethod = .post, headers: HTTPHeaders? = nil) -> UploadRequest -
Creates an
UploadRequestfrom the specifiedurlRequestfor uploading thedata.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func upload(_ data: Data, with urlRequest: URLRequestConvertible) -> UploadRequest
-
Creates an
UploadRequestfrom the specifiedurl,methodandheadersfor uploading thestream.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func upload( _ stream: InputStream, to url: URLConvertible, method: HTTPMethod = .post, headers: HTTPHeaders? = nil) -> UploadRequest -
Creates an
UploadRequestfrom the specifiedurlRequestfor uploading thestream.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func upload(_ stream: InputStream, with urlRequest: URLRequestConvertible) -> UploadRequest
-
Encodes
multipartFormDatausingencodingMemoryThresholdand callsencodingCompletionwith newUploadRequestusing theurl,methodandheaders.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
encodingMemoryThresholdparameter allows Alamofire to automatically determine whether to encode in-memory or stream from disk. If the content length of theMultipartFormDatais below theencodingMemoryThreshold, 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.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func upload( multipartFormData: @escaping (MultipartFormData) -> Void, usingThreshold encodingMemoryThreshold: UInt64 = SessionManager.multipartFormDataEncodingMemoryThreshold, to url: URLConvertible, method: HTTPMethod = .post, headers: HTTPHeaders? = nil, encodingCompletion: ((MultipartFormDataEncodingResult) -> Void)?) -
Encodes
multipartFormDatausingencodingMemoryThresholdand callsencodingCompletionwith newUploadRequestusing theurlRequest.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
encodingMemoryThresholdparameter allows Alamofire to automatically determine whether to encode in-memory or stream from disk. If the content length of theMultipartFormDatais below theencodingMemoryThreshold, 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.If
startRequestsImmediatelyistrue, the request will haveresume()called before being returned.Declaration
Swift
open func upload( multipartFormData: @escaping (MultipartFormData) -> Void, usingThreshold encodingMemoryThreshold: UInt64 = SessionManager.multipartFormDataEncodingMemoryThreshold, with urlRequest: URLRequestConvertible, encodingCompletion: ((MultipartFormDataEncodingResult) -> Void)?)
View on GitHub
SessionManager Class Reference