@@ -30,10 +30,35 @@ extension Networking {
30
30
}
31
31
32
32
private func createRequest( path: String , requestType: RequestType , parameters: Any ? ) throws -> URLRequest {
33
- let parameterType : Networking . ParameterType ? = parameters != nil ? . json : nil
34
- var request = URLRequest ( url: try composedURL ( with: path) , requestType: requestType, path: path, parameterType: parameterType, responseType: . json, boundary: boundary, authorizationHeaderValue: authorizationHeaderValue, token: token, authorizationHeaderKey: authorizationHeaderKey, headerFields: headerFields)
33
+ guard var urlComponents = URLComponents ( string: try composedURL ( with: path) . absoluteString) else {
34
+ throw URLError ( . badURL)
35
+ }
36
+
37
+ if requestType == . get, let queryParameters = parameters as? [ String : Any ] {
38
+ urlComponents. queryItems = queryParameters. map { key, value in
39
+ URLQueryItem ( name: key, value: " \( value) " )
40
+ }
41
+ }
42
+
43
+ guard let url = urlComponents. url else {
44
+ throw URLError ( . badURL)
45
+ }
35
46
36
- if let parameters = parameters {
47
+ let parameterType : Networking . ParameterType ? = ( requestType == . get || parameters == nil ) ? nil : . json
48
+ var request = URLRequest (
49
+ url: url,
50
+ requestType: requestType,
51
+ path: path,
52
+ parameterType: parameterType,
53
+ responseType: . json,
54
+ boundary: boundary,
55
+ authorizationHeaderValue: authorizationHeaderValue,
56
+ token: token,
57
+ authorizationHeaderKey: authorizationHeaderKey,
58
+ headerFields: headerFields
59
+ )
60
+
61
+ if requestType != . get, let parameters = parameters {
37
62
request. httpBody = try JSONSerialization . data ( withJSONObject: parameters, options: [ ] )
38
63
}
39
64
0 commit comments