@@ -53,21 +53,13 @@ public struct UrlSessionHttpClient: HttpClient {
5353 ///
5454 public func uploadTask( _ req: HttpRequest ) async throws -> HttpResponse {
5555 let urlRequest = req. urlRequest
56+ guard let data = urlRequest. httpBody else {
57+ throw HttpError . missingUploadData
58+ }
5659 if log {
5760 print ( urlRequest. curlString)
5861 }
59-
60- let res : ( Data , URLResponse ) = try await withUnsafeThrowingContinuation { c in
61- session. uploadTask ( with: urlRequest, from: urlRequest. httpBody) { data, response, error in
62- if let error = error {
63- return c. resume ( throwing: error)
64- }
65- guard let data = data, let urlResponse = response else {
66- return c. resume ( throwing: HttpError . invalidResponse)
67- }
68- c. resume ( returning: ( data, urlResponse) )
69- } . resume ( )
70- }
62+ let res : ( Data , URLResponse ) = try await session. upload ( for: urlRequest, from: data, delegate: nil )
7163 return try HttpRawResponse ( res)
7264 }
7365
@@ -85,22 +77,10 @@ public struct UrlSessionHttpClient: HttpClient {
8577 if log {
8678 print ( urlRequest. curlString)
8779 }
88-
89- let res : ( Data , URLResponse ) = try await withUnsafeThrowingContinuation { c in
90- session. downloadTask ( with: urlRequest) { url, response, error in
91- if let error = error {
92- return c. resume ( throwing: error)
93- }
94- guard let urlResponse = response, let url = url, let pathData = url. path. data ( using: . utf8) else {
95- return c. resume ( throwing: HttpError . invalidResponse)
96- }
97- c. resume ( returning: ( pathData, urlResponse) )
98- }
99- . resume ( )
80+ let res : ( URL , URLResponse ) = try await session. download ( for: urlRequest, delegate: nil )
81+ guard let pathData = res. 0 . path. data ( using: . utf8) else {
82+ throw HttpError . invalidResponse
10083 }
101- return try HttpRawResponse ( res)
84+ return try HttpRawResponse ( ( pathData , res. 1 ) )
10285 }
10386}
104-
105-
106-
0 commit comments