mirror of
https://github.com/zhigang1992/swift-request.git
synced 2026-01-12 22:52:42 +08:00
33 lines
839 B
Swift
33 lines
839 B
Swift
import Foundation
|
|
import Alamofire
|
|
import SwiftRequest
|
|
|
|
class AlamofireServiceExecutor: ServiceExecutor {
|
|
let session: Session
|
|
|
|
struct Error: Swift.Error {
|
|
let response: DataResponse<Data, AFError>
|
|
}
|
|
|
|
init(session: Session = .default) {
|
|
self.session = session
|
|
}
|
|
|
|
func execute(_ request: SwiftRequest.Request) async throws -> (Data, HTTPURLResponse) {
|
|
let task = session.request(request).serializingData()
|
|
let response = await task.response
|
|
|
|
if let data = response.data, let urlResponse = response.response {
|
|
return (data, urlResponse)
|
|
}
|
|
|
|
if let error = response.error {
|
|
throw error
|
|
}
|
|
|
|
throw Error(response: response)
|
|
}
|
|
}
|
|
|
|
extension SwiftRequest.Request: URLRequestConvertible {}
|