@@ -95,8 +95,15 @@ public class AlamofireWrapper: NSObject {
9595 var afRequest : DataRequest = session. request ( request)
9696
9797 // Apply server trust evaluation if security policy is set
98- if let secPolicy = securityPolicy {
99- afRequest = afRequest. validate ( evaluator: secPolicy)
98+ if let secPolicy = securityPolicy, let host = url. host {
99+ afRequest = afRequest. validate { _, response, _ in
100+ do {
101+ try secPolicy. evaluate ( response. serverTrust!, forHost: host)
102+ return . success( Void ( ) )
103+ } catch {
104+ return . failure( error)
105+ }
106+ }
100107 }
101108
102109 // Upload progress
@@ -115,24 +122,25 @@ public class AlamofireWrapper: NSObject {
115122
116123 // Response handling
117124 afRequest. response ( queue: . main) { response in
118- guard let task = response. request? . task else {
125+ let task = response. request? . task as? URLSessionDataTask
126+ guard let task = task else {
119127 let error = NSError ( domain: " AlamofireWrapper " , code: - 1 , userInfo: [ NSLocalizedDescriptionKey: " No task available " ] )
120128 failure ( nil , error)
121129 return
122130 }
123131
124132 if let error = response. error {
125133 let nsError = self . createNSError ( from: error, response: response. response, data: response. data)
126- failure ( task as? URLSessionDataTask , nsError)
134+ failure ( task, nsError)
127135 return
128136 }
129137
130138 // Deserialize response based on responseSerializer
131139 if let data = response. data {
132140 let result = self . responseSerializer. deserialize ( data: data, response: response. response)
133- success ( task as? URLSessionDataTask ?? URLSessionDataTask ( ) , result)
141+ success ( task, result)
134142 } else {
135- success ( task as? URLSessionDataTask ?? URLSessionDataTask ( ) , nil )
143+ success ( task, nil )
136144 }
137145 }
138146
@@ -178,8 +186,15 @@ public class AlamofireWrapper: NSObject {
178186 } , with: request)
179187
180188 // Apply server trust evaluation if security policy is set
181- if let secPolicy = securityPolicy {
182- afRequest = afRequest. validate ( evaluator: secPolicy)
189+ if let secPolicy = securityPolicy, let host = url. host {
190+ afRequest = afRequest. validate { _, response, _ in
191+ do {
192+ try secPolicy. evaluate ( response. serverTrust!, forHost: host)
193+ return . success( Void ( ) )
194+ } catch {
195+ return . failure( error)
196+ }
197+ }
183198 }
184199
185200 // Upload progress
@@ -191,24 +206,25 @@ public class AlamofireWrapper: NSObject {
191206
192207 // Response handling
193208 afRequest. response ( queue: . main) { response in
194- guard let task = response. request? . task else {
209+ let task = response. request? . task as? URLSessionDataTask
210+ guard let task = task else {
195211 let error = NSError ( domain: " AlamofireWrapper " , code: - 1 , userInfo: [ NSLocalizedDescriptionKey: " No task available " ] )
196212 failure ( nil , error)
197213 return
198214 }
199215
200216 if let error = response. error {
201217 let nsError = self . createNSError ( from: error, response: response. response, data: response. data)
202- failure ( task as? URLSessionDataTask , nsError)
218+ failure ( task, nsError)
203219 return
204220 }
205221
206222 // Deserialize response based on responseSerializer
207223 if let data = response. data {
208224 let result = self . responseSerializer. deserialize ( data: data, response: response. response)
209- success ( task as? URLSessionDataTask ?? URLSessionDataTask ( ) , result)
225+ success ( task, result)
210226 } else {
211- success ( task as? URLSessionDataTask ?? URLSessionDataTask ( ) , nil )
227+ success ( task, nil )
212228 }
213229 }
214230
@@ -227,8 +243,15 @@ public class AlamofireWrapper: NSObject {
227243 var afRequest = session. upload ( fileURL, with: request)
228244
229245 // Apply server trust evaluation if security policy is set
230- if let secPolicy = securityPolicy {
231- afRequest = afRequest. validate ( evaluator: secPolicy)
246+ if let secPolicy = securityPolicy, let host = request. url? . host {
247+ afRequest = afRequest. validate { _, response, _ in
248+ do {
249+ try secPolicy. evaluate ( response. serverTrust!, forHost: host)
250+ return . success( Void ( ) )
251+ } catch {
252+ return . failure( error)
253+ }
254+ }
232255 }
233256
234257 // Upload progress
@@ -267,8 +290,15 @@ public class AlamofireWrapper: NSObject {
267290 var afRequest = session. upload ( bodyData, with: request)
268291
269292 // Apply server trust evaluation if security policy is set
270- if let secPolicy = securityPolicy {
271- afRequest = afRequest. validate ( evaluator: secPolicy)
293+ if let secPolicy = securityPolicy, let host = request. url? . host {
294+ afRequest = afRequest. validate { _, response, _ in
295+ do {
296+ try secPolicy. evaluate ( response. serverTrust!, forHost: host)
297+ return . success( Void ( ) )
298+ } catch {
299+ return . failure( error)
300+ }
301+ }
272302 }
273303
274304 // Upload progress
@@ -371,8 +401,8 @@ public class RequestSerializer: NSObject {
371401 }
372402 } else {
373403 // For GET and others, encode as query parameters
374- if let dict = parameters as? [ String : Any ] {
375- var components = URLComponents ( url: request . url! , resolvingAgainstBaseURL: false )
404+ if let dict = parameters as? [ String : Any ] , let requestURL = request . url {
405+ var components = URLComponents ( url: requestURL , resolvingAgainstBaseURL: false )
376406 components? . queryItems = dict. map { URLQueryItem ( name: $0. key, value: " \( $0. value) " ) }
377407 if let urlWithQuery = components? . url {
378408 request. url = urlWithQuery
0 commit comments