     
 }
 
+
 public extension String {
     
-    func withParams(params: Dictionary<String, AnyObject>) -> String {
+    func withParams(params: Dictionary<String, AnyObject>, arrayEncodingStrategy: ArrayEncodingStrategy = ArrayEncodingStrategy.MultiParam) -> String {
         let endpoint = self.hasPrefix("?") ? self :  self + "?"
-       return  endpoint + (NSString(data: ServiceUtil.asParams(params), encoding: NSUTF8StringEncoding)! as String)
+       return  endpoint + (NSString(data: ServiceUtil.asParams(params, arrayEncodingStrategy: arrayEncodingStrategy), encoding: NSUTF8StringEncoding)! as String)
     }
     
 }

    
}

public enum RequestMethod : String {
    
    case POST = "POST"

        }
    }

    public class func asParamsStr(params: Dictionary<String, AnyObject>, arrayEncodingStrategy: ArrayEncodingStrategy = ArrayEncodingStrategy.MultiParam) -> String {
        var pairs:[String] = []
        for (key, value) in params {
            if let v = value as? Dictionary<String, AnyObject> {
