尝试解码参数值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。