正在获取java.net.URISyntaxException:在Jmeter中运行测试时,索引220处查询中的非法字符

时间:2019-03-14 12:05:14

标签: jmeter

我正在尝试在URL中传递以下行

metadata={"occasion":[{"metavalue":"day-casual"}],"fit":[{"metavalue":"slim"}]}

但是当我运行测试时,出现如下错误

  

java.net.URISyntaxException:索引为220的查询中的非法字符:        在java.net.URI $ Parser.fail(URI.java:2848)       在java.net.URI $ Parser.checkChars(URI.java:3021)       在java.net.URI $ Parser.parseHierarchical(URI.java:3111)       在java.net.URI $ Parser.parse(URI.java:3053)       在java.net.URI。(URI.java:588)       在java.net.URL.toURI(URL.java:946)

我想问题是带有特殊字符的字符串试图传递URL。

有人可以帮我编码和发送吗?

1 个答案:

答案 0 :(得分:1)

根据RFC 3986,URL只能包含数字,字母和一些图形符号,更精确地说:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=

任何其他字符,即{}必须为URL-encoded

如果您需要将JSON结构用作URL查询字符串的一部分,则需要将其包装到__urlEncode() function中,例如:

${__urlencode(metadata={"occasion":[{"metavalue":"day-casual"}]\,"fit":[{"metavalue":"slim"}]})}

查看Apache JMeter Functions - An Introduction文章以熟悉JMeter Functions概念。