Android: специальные символы вызывают проблемы при переходе на спокойные сервисы - PullRequest
0 голосов
/ 03 сентября 2018

Я разработал спокойный сервис с использованием C # .net, используя этот сервис, я должен подтвердить логин и пароль пользователя через приложение для Android, разработанное в Android Studio. Теперь пароль может содержать специальные символы, а в моем случае пароль - abc123 * и URL становятся такими http://srvcallnimbus.azurewebsites.net/srvcallnimbus.svc/validateuserByCompanyName/testPhone/test@test.biz/abc123 Но это не проходит к службе правильно, и мое приложение для Android возвращает ошибку. Я перепробовал все ответы на stockoverflow. Но abc123 не попадает в закодированную форму .URLEncoder.Encode (пароль) не кодирует символ *.

1 Ответ

0 голосов
/ 04 сентября 2018

Я нашел решение следующим образом

Для решения вышеупомянутой проблемы необходимо выполнить следующие шаги

  1. Кодируйте ваш пароль в приложении для Android.
  2. Расшифруйте свой пароль в службе отдыха WCF.

Кодирование пароля в приложении для Android. Используйте следующий метод для кодирования вашего пароля в приложении для Android (кодировка в базе 64)

            String base64Pass=""
            string password="abc123*"
            byte byteData[] =password.getBytes();
            base64Pass= Base64.encodeToString(byteData, Base64.NO_WRAP);

Расшифровка пароля в WCF отдыхе Используйте следующий способ для декодирования вашего пароля в службе WCF Restful.

            String data = password; //passed as parameter
            System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
            System.Text.Decoder utf8Decode = encoder.GetDecoder();

            byte[] todecode_byte = Convert.FromBase64String(data);
            int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);
            char[] decoded_char = new char[charCount];
            utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);
            string result = new String(decoded_char); //Decoded String
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...