如何在网址中设置“{”之类的字符?
How can I set characters like "{" in urls?
我需要通过以下 URL:
https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter={"virtualGuests":{"hostname":{"operation":"hostnameTest"}}}
我尝试了不同的方法,但它不起作用,这是我的代码的一部分:
System.out.println(
given().
when().get("https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter={\"virtualGuests\":{\"hostname\":{\"operation\":\"hostnameTest\"}}}").asString());
}
异常:
java.lang.IllegalArgumentException: Invalid number of path parameters. Expected 1, was 0. Undefined path parameters are: "virtualGuests":{"hostname":{"operation":"hostnameTest".
根据异常,我想我应该需要使用路径参数,我试过了,但没有成功。
此外,我尝试用字符转义码 %7B.
替换 {
有什么想法吗?提前致谢
我刚试过这个:
encodeURI('{"virtualGuests":{"hostname":{"operation":"hostnameTest"}}}')
它给了我:
"%7B%22virtualGuests%22:%7B%22hostname%22:%7B%22operation%22:%22hostnameTest%22%7D%7D%7D"
非常感谢塞巴斯蒂安和罗伯特!
我没有成功使用 encodeURI,但是我使用了 queryParam 并且有效
given().
queryParam("objectFilter", "{\"virtualGuests\":{\"hostname\":{\"operation\":\"hostnameTest\"}}}").
when().get("/SoftLayer_Account/getVirtualGuests")
.then().assertThat().body("id", hasItem(1111111));
非常感谢!
我需要通过以下 URL:
https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter={"virtualGuests":{"hostname":{"operation":"hostnameTest"}}}
我尝试了不同的方法,但它不起作用,这是我的代码的一部分:
System.out.println(
given().
when().get("https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter={\"virtualGuests\":{\"hostname\":{\"operation\":\"hostnameTest\"}}}").asString());
}
异常:
java.lang.IllegalArgumentException: Invalid number of path parameters. Expected 1, was 0. Undefined path parameters are: "virtualGuests":{"hostname":{"operation":"hostnameTest".
根据异常,我想我应该需要使用路径参数,我试过了,但没有成功。
此外,我尝试用字符转义码 %7B.
替换 {有什么想法吗?提前致谢
我刚试过这个:
encodeURI('{"virtualGuests":{"hostname":{"operation":"hostnameTest"}}}')
它给了我:
"%7B%22virtualGuests%22:%7B%22hostname%22:%7B%22operation%22:%22hostnameTest%22%7D%7D%7D"
非常感谢塞巴斯蒂安和罗伯特!
我没有成功使用 encodeURI,但是我使用了 queryParam 并且有效
given().
queryParam("objectFilter", "{\"virtualGuests\":{\"hostname\":{\"operation\":\"hostnameTest\"}}}").
when().get("/SoftLayer_Account/getVirtualGuests")
.then().assertThat().body("id", hasItem(1111111));
非常感谢!