Двойное кодирование URL-адреса Play Framework

с учетом следующего метода контроллера, где username = bob и emailAddress = bob@bob.com

    public static void resetPassword(String username, String emailAddress) {

            String url = BASE_URL + "/users/" + username + "/reset_password";

            HttpResponse response = WS.url(url).setParameter("email_address", emailAddress).get();
}

Иногда, когда я делаю вызов, который получает конечная точка URL:

localhost: 8080 / api / v1 / users / bob / reset_password? email_address = bob% 40bob.com

, тогда в других случаях я получаю: localhost: 8080 / api / v1 / users / bob / reset_password? email_address = bob% 2540bob.com

На втором @ был один раз закодирован до% 40, затем% снова был закодирован до% 25, ​​поэтому вы получите% 2540

Если я ничего не сделаю, кроме как подожду минуту, проблема исчезнет, ​​что заставляет меня думать, что это какая-то проблема с кешированием, но я не могу понять, что это такое.

6
задан dstarh 31 March 2011 в 20:36
поделиться