尝试解码参数值JMeter中的%字符失败,并出现IllegalArgumentException:URLDecoder:转义(%)模式中的非法十六进制字符


问题内容

使用Apache JMeter
2.7,我的POST请求的消息正文(JSON)包含一个密码字段,其格式为asdf%xy3dsfsfsf。JMeter试图将其解释%xy为百分比编码字符,并抛出此异常。

未捕获的异常java.lang.IllegalArgumentException:URLDecoder:转义(%)模式中的非法十六进制字符-
对于输入字符串:“ xy”。有关详细信息,请参见日志文件。

我无法使用反斜杠转义该字符,asdf\%xy3dsfsfsf因为它将以错误的密码进入Web服务。

请提供有关如何解决此问题的建议。

更新:此问题已在内部版本2578中解决.https //builds.apache.org/job/JMeter-trunk/2578/


问题答案:

您可以尝试检查“参数”选项卡中参数上的“编码”复选框,因为您的值包含特殊的char

从参考中获取 带有请求的发送参数

此外,您可以指定每个参数是否应进行URL编码。如果不确定这意味着什么,最好选择它。如果您的值包含&或空格或问号之类的字符,则通常需要编码。

也可以看看:

最后,您可以确认在“查看结果树”中单击“ HTTP请求”时是否得到了异常。无论如何,我已经提出了一个错误来改善此行为:

也许您可以尝试每晚进行一次构建,该构建现在将可用并提供一些反馈,请在此处查看使用说明:

问候

菲利普·M。