2016-04-13 48 views
0

我需要通過以下網址:如何在URL中設置「{」等字符?

https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter= { 「virtualGuests」:{ 「主機名」:{ 「操作」: 「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替換{

任何想法?在此先感謝

回答

0

非常感謝塞巴斯蒂安和羅伯特!

使用使用encodeURI我沒有成功,但是我用queryParam和它的作品

given(). 
         queryParam("objectFilter", "{\"virtualGuests\":{\"hostname\":{\"operation\":\"hostnameTest\"}}}"). 
       when().get("/SoftLayer_Account/getVirtualGuests") 
       .then().assertThat().body("id", hasItem(1111111)); 

非常感謝!

0

我只是嘗試這樣做:

encodeURI('{"virtualGuests":{"hostname":{"operation":"hostnameTest"}}}') 

,這讓我:

"%7B%22virtualGuests%22:%7B%22hostname%22:%7B%22operation%22:%22hostnameTest%22%7D%7D%7D" 
相關問題