@@ -2,56 +2,56 @@ import Foundation
22import HTTPTypes
33
44#if canImport(FoundationNetworking)
5- import FoundationNetworking
5+ import FoundationNetworking
66#endif
77
88#if !os(WASI)
99
10- extension URLSessionTask {
10+ extension URLSessionTask {
1111 /// The original HTTP request this task was created with.
1212 public var originalHTTPRequest : HTTPRequest ? {
13- self . originalRequest? . httpRequest
13+ self . originalRequest? . httpRequest
1414 }
1515
1616 /// The current HTTP request -- may differ from the `originalHTTPRequest` due to HTTP redirection.
1717 public var currentHTTPRequest : HTTPRequest ? {
18- self . currentRequest? . httpRequest
18+ self . currentRequest? . httpRequest
1919 }
2020
2121 /// The HTTP response received from the server.
2222 public var httpResponse : HTTPResponse ? {
23- ( self . response as? HTTPURLResponse ) ? . httpResponse
23+ ( self . response as? HTTPURLResponse ) ? . httpResponse
2424 }
25- }
25+ }
2626
27- private enum HTTPTypeConversionError : Error {
27+ private enum HTTPTypeConversionError : Error {
2828 case failedToConvertHTTPRequestToURLRequest
2929 case failedToConvertURLResponseToHTTPResponse
30- }
30+ }
3131
3232#endif
3333
3434#if canImport(FoundationNetworking) && compiler(<6)
3535
36- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
37- extension URLSession {
36+ @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
37+ extension URLSession {
3838 /// Convenience method to load data using an `HTTPRequest`; creates and resumes a `URLSessionDataTask` internally.
3939 ///
4040 /// - Parameter request: The `HTTPRequest` for which to load data.
4141 /// - Parameter delegate: Task-specific delegate.
4242 /// - Returns: Data and response.
4343 public func data(
44- for request: HTTPRequest ,
45- delegate: ( any URLSessionTaskDelegate ) ? = nil
44+ for request: HTTPRequest ,
45+ delegate: ( any URLSessionTaskDelegate ) ? = nil
4646 ) async throws -> ( Data , HTTPResponse ) {
47- guard let urlRequest = URLRequest ( httpRequest: request) else {
48- throw HTTPTypeConversionError . failedToConvertHTTPRequestToURLRequest
49- }
50- let ( data, urlResponse) = try await self . data ( for: urlRequest, delegate: delegate)
51- guard let response = ( urlResponse as? HTTPURLResponse ) ? . httpResponse else {
52- throw HTTPTypeConversionError . failedToConvertURLResponseToHTTPResponse
53- }
54- return ( data, response)
47+ guard let urlRequest = URLRequest ( httpRequest: request) else {
48+ throw HTTPTypeConversionError . failedToConvertHTTPRequestToURLRequest
49+ }
50+ let ( data, urlResponse) = try await self . data ( for: urlRequest, delegate: delegate)
51+ guard let response = ( urlResponse as? HTTPURLResponse ) ? . httpResponse else {
52+ throw HTTPTypeConversionError . failedToConvertURLResponseToHTTPResponse
53+ }
54+ return ( data, response)
5555 }
5656
5757 /// Convenience method to upload data using an `HTTPRequest`, creates and resumes a `URLSessionUploadTask` internally.
@@ -61,53 +61,56 @@ extension URLSession {
6161 /// - Parameter delegate: Task-specific delegate.
6262 /// - Returns: Data and response.
6363 public func upload(
64- for request: HTTPRequest ,
65- from bodyData: Data ,
66- delegate: ( any URLSessionTaskDelegate ) ? = nil
64+ for request: HTTPRequest ,
65+ from bodyData: Data ,
66+ delegate: ( any URLSessionTaskDelegate ) ? = nil
6767 ) async throws -> ( Data , HTTPResponse ) {
68- guard let urlRequest = URLRequest ( httpRequest: request) else {
69- throw HTTPTypeConversionError . failedToConvertHTTPRequestToURLRequest
70- }
71- let ( data, urlResponse) = try await self . upload ( for: urlRequest, from: bodyData, delegate: delegate)
72- guard let response = ( urlResponse as? HTTPURLResponse ) ? . httpResponse else {
73- throw HTTPTypeConversionError . failedToConvertURLResponseToHTTPResponse
74- }
75- return ( data, response)
68+ guard let urlRequest = URLRequest ( httpRequest: request) else {
69+ throw HTTPTypeConversionError . failedToConvertHTTPRequestToURLRequest
70+ }
71+ let ( data, urlResponse) = try await self . upload (
72+ for: urlRequest, from: bodyData, delegate: delegate)
73+ guard let response = ( urlResponse as? HTTPURLResponse ) ? . httpResponse else {
74+ throw HTTPTypeConversionError . failedToConvertURLResponseToHTTPResponse
75+ }
76+ return ( data, response)
7677 }
77- }
78+ }
7879
79- @available ( macOS 10 . 15 , iOS 13 . 0 , watchOS 6 . 0 , tvOS 13 . 0 , * )
80- extension URLSession {
80+ @available ( macOS 10 . 15 , iOS 13 . 0 , watchOS 6 . 0 , tvOS 13 . 0 , * )
81+ extension URLSession {
8182 /// Convenience method to load data using an `HTTPRequest`; creates and resumes a `URLSessionDataTask` internally.
8283 ///
8384 /// - Parameter request: The `HTTPRequest` for which to load data.
8485 /// - Returns: Data and response.
8586 public func data( for request: HTTPRequest ) async throws -> ( Data , HTTPResponse ) {
86- guard let urlRequest = URLRequest ( httpRequest: request) else {
87- throw HTTPTypeConversionError . failedToConvertHTTPRequestToURLRequest
88- }
89- let ( data, urlResponse) = try await self . data ( for: urlRequest)
90- guard let response = ( urlResponse as? HTTPURLResponse ) ? . httpResponse else {
91- throw HTTPTypeConversionError . failedToConvertURLResponseToHTTPResponse
92- }
93- return ( data, response)
87+ guard let urlRequest = URLRequest ( httpRequest: request) else {
88+ throw HTTPTypeConversionError . failedToConvertHTTPRequestToURLRequest
89+ }
90+ let ( data, urlResponse) = try await self . data ( for: urlRequest)
91+ guard let response = ( urlResponse as? HTTPURLResponse ) ? . httpResponse else {
92+ throw HTTPTypeConversionError . failedToConvertURLResponseToHTTPResponse
93+ }
94+ return ( data, response)
9495 }
9596
9697 /// Convenience method to upload data using an `HTTPRequest`, creates and resumes a `URLSessionUploadTask` internally.
9798 ///
9899 /// - Parameter request: The `HTTPRequest` for which to upload data.
99100 /// - Parameter bodyData: Data to upload.
100101 /// - Returns: Data and response.
101- public func upload( for request: HTTPRequest , from bodyData: Data ) async throws -> ( Data , HTTPResponse ) {
102- guard let urlRequest = URLRequest ( httpRequest: request) else {
103- throw HTTPTypeConversionError . failedToConvertHTTPRequestToURLRequest
104- }
105- let ( data, urlResponse) = try await self . upload ( for: urlRequest, from: bodyData)
106- guard let response = ( urlResponse as? HTTPURLResponse ) ? . httpResponse else {
107- throw HTTPTypeConversionError . failedToConvertURLResponseToHTTPResponse
108- }
109- return ( data, response)
102+ public func upload( for request: HTTPRequest , from bodyData: Data ) async throws -> (
103+ Data , HTTPResponse
104+ ) {
105+ guard let urlRequest = URLRequest ( httpRequest: request) else {
106+ throw HTTPTypeConversionError . failedToConvertHTTPRequestToURLRequest
107+ }
108+ let ( data, urlResponse) = try await self . upload ( for: urlRequest, from: bodyData)
109+ guard let response = ( urlResponse as? HTTPURLResponse ) ? . httpResponse else {
110+ throw HTTPTypeConversionError . failedToConvertURLResponseToHTTPResponse
111+ }
112+ return ( data, response)
110113 }
111- }
114+ }
112115
113116#endif
0 commit comments