-
URLRequestConvertible
value used to createURLRequest
s for this instance.Declaration
Swift
public let convertible: any URLRequestConvertible
-
Data
read from the server so far.Declaration
Swift
public var data: Data? { get }
-
Validates the request, using the specified closure.
Note
If validation fails, subsequent calls to response handlers will have an associated error.
Declaration
Swift
@discardableResult @preconcurrency public func validate(_ validation: @escaping Validation) -> Self
Parameters
validation
Validation
closure used to validate the response.Return Value
The instance.
-
Sets a closure called whenever the
DataRequest
produces anHTTPURLResponse
and providing a completion handler to return aResponseDisposition
value.Declaration
Swift
@discardableResult @_disfavoredOverload @preconcurrency public func onHTTPResponse( on queue: DispatchQueue = .main, perform handler: @Sendable @escaping (_ response: HTTPURLResponse, _ completionHandler: @Sendable @escaping (ResponseDisposition) -> Void) -> Void ) -> Self
Parameters
queue
DispatchQueue
on which the closure will be called..main
by default.handler
Closure called when the instance produces an
HTTPURLResponse
. ThecompletionHandler
provided MUST be called, otherwise the request will never complete.Return Value
The instance.
-
Sets a closure called whenever the
DataRequest
produces anHTTPURLResponse
.Declaration
Swift
@discardableResult @preconcurrency public func onHTTPResponse(on queue: DispatchQueue = .main, perform handler: @Sendable @escaping (HTTPURLResponse) -> Void) -> Self
Parameters
queue
DispatchQueue
on which the closure will be called..main
by default.handler
Closure called when the instance produces an
HTTPURLResponse
.Return Value
The instance.
-
Adds a handler to be called once the request has finished.
Declaration
Swift
@discardableResult @preconcurrency public func response(queue: DispatchQueue = .main, completionHandler: @escaping @Sendable (AFDataResponse<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 @preconcurrency public func response<Serializer: DataResponseSerializerProtocol>(queue: DispatchQueue = .main, responseSerializer: Serializer, completionHandler: @Sendable @escaping (AFDataResponse<Serializer.SerializedObject>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by defaultresponseSerializer
The response serializer responsible for serializing the request, response, and data.
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 @preconcurrency public func response<Serializer: ResponseSerializer>(queue: DispatchQueue = .main, responseSerializer: Serializer, completionHandler: @Sendable @escaping (AFDataResponse<Serializer.SerializedObject>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by defaultresponseSerializer
The response serializer responsible for serializing the request, response, and data.
completionHandler
The code to be executed once the request has finished.
Return Value
The request.
-
Adds a handler using a
DataResponseSerializer
to be called once the request has finished.Declaration
Swift
@discardableResult @preconcurrency public func responseData(queue: DispatchQueue = .main, dataPreprocessor: any DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, emptyResponseCodes: Set<Int> = DataResponseSerializer.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = DataResponseSerializer.defaultEmptyRequestMethods, completionHandler: @Sendable @escaping (AFDataResponse<Data>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is called.
.main
by default.dataPreprocessor
DataPreprocessor
which processes the receivedData
before calling thecompletionHandler
.PassthroughPreprocessor()
by default.emptyResponseCodes
HTTP status codes for which empty responses are always valid.
[204, 205]
by default.emptyRequestMethods
HTTPMethod
s for which empty responses are always valid.[.head]
by default.completionHandler
A closure to be executed once the request has finished.
Return Value
The request.
-
responseString(queue:
dataPreprocessor: encoding: emptyResponseCodes: emptyRequestMethods: completionHandler: ) Adds a handler using a
StringResponseSerializer
to be called once the request has finished.Declaration
Swift
@discardableResult @preconcurrency public func responseString(queue: DispatchQueue = .main, dataPreprocessor: any DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, encoding: String.Encoding? = nil, emptyResponseCodes: Set<Int> = StringResponseSerializer.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = StringResponseSerializer.defaultEmptyRequestMethods, completionHandler: @Sendable @escaping (AFDataResponse<String>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by default.dataPreprocessor
DataPreprocessor
which processes the receivedData
before calling thecompletionHandler
.PassthroughPreprocessor()
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
.emptyResponseCodes
HTTP status codes for which empty responses are always valid.
[204, 205]
by default.emptyRequestMethods
HTTPMethod
s for which empty responses are always valid.[.head]
by default.completionHandler
A closure to be executed once the request has finished.
Return Value
The request.
-
responseJSON(queue:
dataPreprocessor: emptyResponseCodes: emptyRequestMethods: options: completionHandler: ) Adds a handler using a
JSONResponseSerializer
to be called once the request has finished.Declaration
Swift
@available(*, deprecated, message: "responseJSON deprecated and will be removed in Alamofire 6. Use responseDecodable instead.") @discardableResult @preconcurrency public func responseJSON(queue: DispatchQueue = .main, dataPreprocessor: any DataPreprocessor = JSONResponseSerializer.defaultDataPreprocessor, emptyResponseCodes: Set<Int> = JSONResponseSerializer.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = JSONResponseSerializer.defaultEmptyRequestMethods, options: JSONSerialization.ReadingOptions = .allowFragments, completionHandler: @Sendable @escaping (AFDataResponse<any Any & Sendable>) -> Void) -> Self
Parameters
queue
The queue on which the completion handler is dispatched.
.main
by default.dataPreprocessor
DataPreprocessor
which processes the receivedData
before calling thecompletionHandler
.PassthroughPreprocessor()
by default.emptyResponseCodes
HTTP status codes for which empty responses are always valid.
[204, 205]
by default.emptyRequestMethods
HTTPMethod
s for which empty responses are always valid.[.head]
by default.options
JSONSerialization.ReadingOptions
used when parsing the response..allowFragments
by default.completionHandler
A closure to be executed once the request has finished.
Return Value
The request.
-
responseDecodable(of:
queue: dataPreprocessor: decoder: emptyResponseCodes: emptyRequestMethods: completionHandler: ) Adds a handler using a
DecodableResponseSerializer
to be called once the request has finished.Declaration
Swift
@discardableResult @preconcurrency public func responseDecodable<Value>(of type: Value.Type = Value.self, queue: DispatchQueue = .main, dataPreprocessor: any DataPreprocessor = DecodableResponseSerializer<Value>.defaultDataPreprocessor, decoder: any DataDecoder = JSONDecoder(), emptyResponseCodes: Set<Int> = DecodableResponseSerializer<Value>.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = DecodableResponseSerializer<Value>.defaultEmptyRequestMethods, completionHandler: @Sendable @escaping (AFDataResponse<Value>) -> Void) -> Self where Value: Decodable, Value: Sendable
Parameters
type
Decodable
type to decode from response data.queue
The queue on which the completion handler is dispatched.
.main
by default.dataPreprocessor
DataPreprocessor
which processes the receivedData
before calling thecompletionHandler
.PassthroughPreprocessor()
by default.decoder
DataDecoder
to use to decode the response.JSONDecoder()
by default.emptyResponseCodes
HTTP status codes for which empty responses are always valid.
[204, 205]
by default.emptyRequestMethods
HTTPMethod
s for which empty responses are always valid.[.head]
by default.completionHandler
A closure to be executed once the request has finished.
Return Value
The request.
-
Creates a
DataResponsePublisher
for this instance using the givenResponseSerializer
andDispatchQueue
.Declaration
Swift
@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) public func publishResponse<Serializer: ResponseSerializer, T>(using serializer: Serializer, on queue: DispatchQueue = .main) -> DataResponsePublisher<T> where Serializer.SerializedObject == T
Parameters
serializer
ResponseSerializer
used to serialize responseData
.queue
DispatchQueue
on which theDataResponse
will be published..main
by default.Return Value
-
Creates a
DataResponsePublisher
for this instance and uses aDataResponseSerializer
to serialize the response.Declaration
Swift
@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) public func publishData(queue: DispatchQueue = .main, preprocessor: any DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, emptyResponseCodes: Set<Int> = DataResponseSerializer.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = DataResponseSerializer.defaultEmptyRequestMethods) -> DataResponsePublisher<Data>
Parameters
queue
DispatchQueue
on which theDataResponse
will be published..main
by default.preprocessor
DataPreprocessor
which filters theData
before serialization.PassthroughPreprocessor()
by default.emptyResponseCodes
Set<Int>
of HTTP status codes for which empty responses are allowed.[204, 205]
by default.emptyRequestMethods
Set<HTTPMethod>
ofHTTPMethod
s for which empty responses are allowed, regardless of status code.[.head]
by default.Return Value
-
Creates a
DataResponsePublisher
for this instance and uses aStringResponseSerializer
to serialize the response.Declaration
Swift
@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) public func publishString(queue: DispatchQueue = .main, preprocessor: any DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, encoding: String.Encoding? = nil, emptyResponseCodes: Set<Int> = StringResponseSerializer.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = StringResponseSerializer.defaultEmptyRequestMethods) -> DataResponsePublisher<String>
Parameters
queue
DispatchQueue
on which theDataResponse
will be published..main
by default.preprocessor
DataPreprocessor
which filters theData
before serialization.PassthroughPreprocessor()
by default.encoding
String.Encoding
to parse the response.nil
by default, in which case the encoding will be determined by the server response, falling back to the default HTTP character set,ISO-8859-1
.emptyResponseCodes
Set<Int>
of HTTP status codes for which empty responses are allowed.[204, 205]
by default.emptyRequestMethods
Set<HTTPMethod>
ofHTTPMethod
s for which empty responses are allowed, regardless of status code.[.head]
by default.Return Value
-
Undocumented
Declaration
Swift
@_disfavoredOverload public func publishDecodable<T: Decodable>(type: T.Type = T.self, queue: DispatchQueue = .main, preprocessor: any DataPreprocessor = DecodableResponseSerializer<T>.defaultDataPreprocessor, decoder: any DataDecoder = JSONDecoder(), emptyResponseCodes: Set<Int> = DecodableResponseSerializer<T>.defaultEmptyResponseCodes, emptyResponseMethods: Set<HTTPMethod> = DecodableResponseSerializer<T>.defaultEmptyRequestMethods) -> DataResponsePublisher<T>
-
Creates a
DataResponsePublisher
for this instance and uses aDecodableResponseSerializer
to serialize the response.Declaration
Swift
@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) public func publishDecodable<T: Decodable>(type: T.Type = T.self, queue: DispatchQueue = .main, preprocessor: any DataPreprocessor = DecodableResponseSerializer<T>.defaultDataPreprocessor, decoder: any DataDecoder = JSONDecoder(), emptyResponseCodes: Set<Int> = DecodableResponseSerializer<T>.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = DecodableResponseSerializer<T>.defaultEmptyRequestMethods) -> DataResponsePublisher<T>
Parameters
type
Decodable
type to which to decode responseData
. Inferred from the context by default.queue
DispatchQueue
on which theDataResponse
will be published..main
by default.preprocessor
DataPreprocessor
which filters theData
before serialization.PassthroughPreprocessor()
by default.decoder
DataDecoder
instance used to decode responseData
.JSONDecoder()
by default.emptyResponseCodes
Set<Int>
of HTTP status codes for which empty responses are allowed.[204, 205]
by default.emptyRequestMethods
Set<HTTPMethod>
ofHTTPMethod
s for which empty responses are allowed, regardless of status code.[.head]
by default.Return Value
-
Creates a
DataResponsePublisher
for this instance which does not serialize the response before publishing.queue:
DispatchQueue
on which theDataResponse
will be published..main
by default.
Declaration
Swift
@available(macOS 10.15, iOS 13, watchOS 6, tvOS 13, *) public func publishUnserialized(queue: DispatchQueue = .main) -> DataResponsePublisher<Data?>
Return Value
-
Creates a
StreamOf<HTTPURLResponse>
for the instance’s responses.Declaration
Parameters
bufferingPolicy
BufferingPolicy
that determines the stream’s buffering behavior..unbounded
by default.Return Value
-
Sets an async closure returning a
Request.ResponseDisposition
, called whenever theDataRequest
produces anHTTPURLResponse
.Note
Most requests will only produce a single response for each outgoing attempt (initial + retries). However, some types of response may trigger multiple
HTTPURLResponse
s, such as multipart streams, where responses after the first will contain the part headers.Declaration
Swift
@discardableResult @_disfavoredOverload public func onHTTPResponse( perform handler: @escaping @Sendable (_ response: HTTPURLResponse) async -> ResponseDisposition ) -> Self
Parameters
handler
Async closure executed when a new
HTTPURLResponse
is received and returning aResponseDisposition
value. This value determines whether to continue the request or cancel it as ifcancel()
had been called on the instance. Note, this closure is called on an arbitrary thread, so any synchronous calls in it will execute in that context.Return Value
The instance.
-
Sets an async closure called whenever the
DataRequest
produces anHTTPURLResponse
.Note
Most requests will only produce a single response for each outgoing attempt (initial + retries). However, some types of response may trigger multiple
HTTPURLResponse
s, such as multipart streams, where responses after the first will contain the part headers.Declaration
Swift
@discardableResult public func onHTTPResponse(perform handler: @escaping @Sendable (_ response: HTTPURLResponse) async -> Void) -> Self
Parameters
handler
Async closure executed when a new
HTTPURLResponse
is received. Note, this closure is called on an arbitrary thread, so any synchronous calls in it will execute in that context.Return Value
The instance.
-
Creates a
DataTask
toawait
aData
value.Declaration
Swift
public func serializingData(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, dataPreprocessor: any DataPreprocessor = DataResponseSerializer.defaultDataPreprocessor, emptyResponseCodes: Set<Int> = DataResponseSerializer.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = DataResponseSerializer.defaultEmptyRequestMethods) -> DataTask<Data>
Parameters
shouldAutomaticallyCancel
Bool
determining whether or not the request should be cancelled when the enclosing async context is cancelled. Only applies toDataTask
‘s async properties.true
by default.dataPreprocessor
DataPreprocessor
which processes the receivedData
before completion.emptyResponseCodes
HTTP response codes for which empty responses are allowed.
[204, 205]
by default.emptyRequestMethods
HTTPMethod
s for which empty responses are always valid.[.head]
by default.Return Value
The
DataTask
. -
serializingDecodable(_:
automaticallyCancelling: dataPreprocessor: decoder: emptyResponseCodes: emptyRequestMethods: ) Creates a
DataTask
toawait
serialization of aDecodable
value.Declaration
Swift
public func serializingDecodable<Value: Decodable>(_ type: Value.Type = Value.self, automaticallyCancelling shouldAutomaticallyCancel: Bool = true, dataPreprocessor: any DataPreprocessor = DecodableResponseSerializer<Value>.defaultDataPreprocessor, decoder: any DataDecoder = JSONDecoder(), emptyResponseCodes: Set<Int> = DecodableResponseSerializer<Value>.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = DecodableResponseSerializer<Value>.defaultEmptyRequestMethods) -> DataTask<Value>
Parameters
type
Decodable
type to decode from response data.shouldAutomaticallyCancel
Bool
determining whether or not the request should be cancelled when the enclosing async context is cancelled. Only applies toDataTask
‘s async properties.true
by default.dataPreprocessor
DataPreprocessor
which processes the receivedData
before calling the serializer.PassthroughPreprocessor()
by default.decoder
DataDecoder
to use to decode the response.JSONDecoder()
by default.emptyResponseCodes
HTTP status codes for which empty responses are always valid.
[204, 205]
by default.emptyRequestMethods
HTTPMethod
s for which empty responses are always valid.[.head]
by default.Return Value
The
DataTask
. -
serializingString(automaticallyCancelling:
dataPreprocessor: encoding: emptyResponseCodes: emptyRequestMethods: ) Creates a
DataTask
toawait
serialization of aString
value.Declaration
Swift
public func serializingString(automaticallyCancelling shouldAutomaticallyCancel: Bool = true, dataPreprocessor: any DataPreprocessor = StringResponseSerializer.defaultDataPreprocessor, encoding: String.Encoding? = nil, emptyResponseCodes: Set<Int> = StringResponseSerializer.defaultEmptyResponseCodes, emptyRequestMethods: Set<HTTPMethod> = StringResponseSerializer.defaultEmptyRequestMethods) -> DataTask<String>
Parameters
shouldAutomaticallyCancel
Bool
determining whether or not the request should be cancelled when the enclosing async context is cancelled. Only applies toDataTask
‘s async properties.true
by default.dataPreprocessor
DataPreprocessor
which processes the receivedData
before calling the serializer.PassthroughPreprocessor()
by default.encoding
String.Encoding
to use during serialization. Defaults tonil
, in which case the encoding will be determined from the server response, falling back to the default HTTP character set,ISO-8859-1
.emptyResponseCodes
HTTP status codes for which empty responses are always valid.
[204, 205]
by default.emptyRequestMethods
HTTPMethod
s for which empty responses are always valid.[.head]
by default.Return Value
The
DataTask
. -
Creates a
DataTask
toawait
serialization using the providedResponseSerializer
instance.Declaration
Swift
public func serializingResponse<Serializer: ResponseSerializer>(using serializer: Serializer, automaticallyCancelling shouldAutomaticallyCancel: Bool = true) -> DataTask<Serializer.SerializedObject>
Parameters
serializer
ResponseSerializer
responsible for serializing the request, response, and data.shouldAutomaticallyCancel
Bool
determining whether or not the request should be cancelled when the enclosing async context is cancelled. Only applies toDataTask
‘s async properties.true
by default.Return Value
The
DataTask
. -
Creates a
DataTask
toawait
serialization using the providedDataResponseSerializerProtocol
instance.Declaration
Swift
public func serializingResponse<Serializer: DataResponseSerializerProtocol>(using serializer: Serializer, automaticallyCancelling shouldAutomaticallyCancel: Bool = true) -> DataTask<Serializer.SerializedObject>
Parameters
serializer
DataResponseSerializerProtocol
responsible for serializing the request, response, and data.shouldAutomaticallyCancel
Bool
determining whether or not the request should be cancelled when the enclosing async context is cancelled. Only applies toDataTask
‘s async properties.true
by default.Return Value
The
DataTask
.
-
A closure used to validate a request that takes a URL request, a URL response and data, and returns whether the request was valid.
Declaration
Swift
public typealias Validation = (URLRequest?, HTTPURLResponse, Data?) -> 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
acceptableStatusCodes
Sequence
of acceptable response status codes.Return Value
The instance.
-
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>(contentType acceptableContentTypes: @escaping @autoclosure () -> S) -> Self where S : Sequence, S.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.