         return nil
     }
 
-    private func _prepareUrlQuery(query: String?, provider: IQApiProvider) -> String? {
+    func _prepareUrlQuery(query: String?, provider: IQApiProvider) -> String? {
         var rawParams: [String: Any] = [:]
         provider.urlParams.forEach({ (key, value) in
             rawParams[key] = value

    
}

extension QApiRequest {
    
    public static let ParamsCharacterSet: CharacterSet = CharacterSet(charactersIn: "!*'();:@&=+$,/?%#[] ").inverted
    
}

extension QApiRequest {

    private func _prepareUrlComponents(provider: IQApiProvider) -> URLComponents? {
        if let selfUrl = self.url {
            return URLComponents(string: selfUrl.absoluteString)
        } else if let providerUrl = provider.baseUrl {

        return result
    }
    
    func _encodeMultipartBody(params: [(String, String)]) -> [(String, String)] {
        var result: [(String, String)] = []
        params.forEach({ (key, value) in
            let encodeKey = self._encode(key: key)
