Попытка декодирования символа% в значении параметра завершается неудачно с помощью IllegalArgumentException: URLDecoder: недопустимые шестнадцатеричные символы в шаблоне escape(%)

Используя Apache JMeter 2.7, тело сообщения (JSON) для моего запроса POST содержит поле пароля в форме asdf%xy3dsfsfsf, JMeter пытается интерпретировать %xy в процентах кодируется символ и выбрасывается это исключение.

Uncaught Exception java.lang.IllegalArgumentException: URLDecoder: недопустимые шестнадцатеричные символы в шаблоне escape(%) - для входной строки: "xy". Смотрите файл журнала для деталей.

Я не могу избежать персонажа, используя обратную косую черту asdf\%xy3dsfsfsf поскольку он попадет в веб-сервис как неверный пароль.

Пожалуйста, совет, как решить эту проблему.

ОБНОВЛЕНИЕ: проблема решена в сборке 2578. https://builds.apache.org/job/JMeter-trunk/2578/

1 ответ

Решение

Вы можете попробовать установить флажок кодирования в параметре на вкладке "Параметры", так как ваше значение содержит специальный символ %.

Из справки об отправке параметров с запросом:

Кроме того, вы можете указать, должен ли каждый параметр кодироваться в URL. Если вы не уверены, что это значит, лучше выбрать его. Если ваши значения содержат такие символы, как & или пробелы, или вопросительные знаки, то обычно требуется кодировка.

Смотрите также:

Наконец, можете ли вы подтвердить, что получили исключение при нажатии HTTP-запроса в дереве результатов просмотра, я поднял ошибку, чтобы исправить это поведение, которое было исправлено:

Возможно, вы могли бы попробовать ночную сборку, которая теперь доступна, и дать некоторую обратную связь, см. Инструкции по ее использованию здесь:

С уважением

Филипп М.

Другие вопросы по тегам