     }
     // swiftlint:enable function_body_length
     // swiftlint:enable cyclomatic_complexity
+
+    private func parseURLQuery(url: String) throws -> [String: String] {
+        let splits = url.split(separator: "?", maxSplits: 1)
+        guard splits.count == 2 else {
+            return [:]
+        }
+        return try parseURLQuery(query: splits.last!.description)
+    }
+
+    private func parseURLQuery(query: String) throws -> [String: String] {
+        var res = [String: String]()
+        for qs in query.components(separatedBy: "&") {
+            let values = qs.split(separator: "=", maxSplits: 1)
+
+            let key = qs.components(separatedBy: "=").first!
+            var value: String
+            if values.count == 2 {
+                value = qs.components(separatedBy: "=").last!
+                value = value.replacingOccurrences(of: "+", with: " ")
+            } else {
+                value = ""
+            }
+
+            guard let finalValue = value.removingPercentEncoding else {
+                throw RequestError(kind: .postBodyParseError(errorString: value))
+            }
+            res[key] = finalValue
+        }
+        return res
+    }
 
     private func parseEncoding() {
         guard var acceptLine = headers[.acceptEncoding] else {

    /// - Parameter key: Parameter name
    /// - Returns: Parameter value
    public func getQueryParameter(for key: String) -> String? {
        return _path[key]
    }

    /// Returns parameter coded in body of request


    /// Returns all get parameters
    public var queryParameters: [String: String?] {
        return _queryParameters
    }
}

