I have a simple GET request for login. Username is Silver and password is  MOto&@10
I am using SwiftHttp framework for handling requests. On hitting login request, I always get response as false.
However on hitting the login request url on browser (replaced actual domain with server) I get true :
https://server/api/check-access/by-login-pass?_key=wlyOF7TM8Y3tn19KUdlq&login=silver&pass=MOto%26@10 
There is something wrong with encoding & in the password. Though I have replaced it with percent encoding. Here is my code :
do {               
   let passwordString = self.convertSpecialCharacters(string: password.text!)
   print("%@", passwordString)
   let opt = try HTTP.GET(Constants.kLoginUrl, parameters: ["login": username.text!, "pass": passwordString])
   opt.start { response in
             if let err = response.error {
                 print("error: \(err.localizedDescription)")
                 return
             }
             print("opt finished: \(response.description)")
             self.parseLoginResponse(response.data)
}
} catch _ as NSError {
}  
And this is convertSpecialCharacters :
func convertSpecialCharacters(string: String) -> String {
        var newString = string
        let arrayEncode = ["&", "<", ">", "\"", "'", "-", "..."]
        for (escaped_char) in arrayEncode {
            newString = newString.encode(escaped_char)
        }
        return newString
    } 
Extension for encoding :
extension String {
        func encode(_ chars: String) -> String
        {
            let forbidden = CharacterSet(charactersIn: chars)
            return self.addingPercentEncoding(withAllowedCharacters: forbidden.inverted) ?? self
        }
    }
 
     
     
    