     /// - throws: An `AFError.parameterEncodingFailed` error if encoding fails.
     ///
     /// - returns: The encoded request.
-    func encode(_ request: URLRequestConvertible, with parameters: Request.RequestParameters) throws -> URLRequest
+    func encode(_ request: URLRequestConvertible, with parameters: Request.RequestParameters?) throws -> URLRequest
 }
 
 public class Request {}

    /// - throws: An `Error` if the encoding process encounters an error.
    ///
    /// - returns: The encoded request.
    public func encode(_ request: URLRequestConvertible, with parameters: Request.RequestParameters) throws -> URLRequest {
        return URLRequest(url: URL(string: "")!)
    }
}



extension Dictionary: URLQueryStringConvertible {
    public func asQuery() throws -> String {
        guard let _ = self as? [String: Any] else { throw AxziplinError.invalidParametersKeyType(parameters: self) }
        
        func _query() -> String {
            var components: [(String, String)] = []
