@@ -82,21 +82,17 @@ public class AlamofireWrapper: NSObject {
8282 request = try requestSerializer. createRequest (
8383 url: url,
8484 method: HTTPMethod ( rawValue: method. uppercased ( ) ) ,
85- parameters: parameters ,
85+ parameters: nil ,
8686 headers: headers
8787 )
88+ // Encode parameters into the request
89+ try requestSerializer. encodeParameters ( parameters, into: & request, method: HTTPMethod ( rawValue: method. uppercased ( ) ) )
8890 } catch {
8991 failure ( nil , error)
9092 return nil
9193 }
9294
93- var afRequest : DataRequest
94-
95- if let jsonData = parameters as? Data {
96- afRequest = session. upload ( jsonData, with: request)
97- } else {
98- afRequest = session. request ( request)
99- }
95+ var afRequest : DataRequest = session. request ( request)
10096
10197 // Apply server trust evaluation if security policy is set
10298 if let secPolicy = securityPolicy {
@@ -360,32 +356,30 @@ public class RequestSerializer: NSObject {
360356 }
361357 }
362358
359+ return request
360+ }
361+
362+ public func encodeParameters( _ parameters: NSDictionary ? , into request: inout URLRequest , method: HTTPMethod ) throws {
363363 // Encode parameters
364364 if let parameters = parameters {
365365 if method == . post || method == . put || method == . patch {
366366 // For POST/PUT/PATCH, encode as JSON in body
367- if let dict = parameters as? [ String : Any ] {
368- let jsonData = try JSONSerialization . data ( withJSONObject: dict, options: [ ] )
369- request. httpBody = jsonData
370- if request. value ( forHTTPHeaderField: " Content-Type " ) == nil {
371- request. setValue ( " application/json " , forHTTPHeaderField: " Content-Type " )
372- }
373- } else if let data = parameters as? Data {
374- request. httpBody = data
367+ let jsonData = try JSONSerialization . data ( withJSONObject: parameters, options: [ ] )
368+ request. httpBody = jsonData
369+ if request. value ( forHTTPHeaderField: " Content-Type " ) == nil {
370+ request. setValue ( " application/json " , forHTTPHeaderField: " Content-Type " )
375371 }
376372 } else {
377373 // For GET and others, encode as query parameters
378374 if let dict = parameters as? [ String : Any ] {
379- var components = URLComponents ( url: url, resolvingAgainstBaseURL: false )
375+ var components = URLComponents ( url: request . url! , resolvingAgainstBaseURL: false )
380376 components? . queryItems = dict. map { URLQueryItem ( name: $0. key, value: " \( $0. value) " ) }
381377 if let urlWithQuery = components? . url {
382378 request. url = urlWithQuery
383379 }
384380 }
385381 }
386382 }
387-
388- return request
389383 }
390384}
391385
0 commit comments