2016-04-13 5 views
0

Ich brauche die folgende URL weitergeben müssen:Wie kann ich Zeichen wie "{" in URLs setzen?

https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter= { "virtualGuests": { "Host-Name": { "Betrieb": "hostnameTest"}}}

ich durch verschiedene Weise versucht, aber es funktioniert nicht, das ist ein Teil meines Code:

System.out.println(
       given(). 
       when().get("https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectFilter={\"virtualGuests\":{\"hostname\":{\"operation\":\"hostnameTest\"}}}").asString()); 

    } 

Ausnahme:

java.lang.IllegalArgumentException: Invalid number of path parameters. Expected 1, was 0. Undefined path parameters are: "virtualGuests":{"hostname":{"operation":"hostnameTest". 

Nach der Ausnahme, ich denke, ich sollte Pfadparameter verwenden müssen, habe ich versucht, aber ich hatte keinen Erfolg.

Auch habe ich versucht, { mit Charakter Escape-Code % 7B zu ersetzen.

Irgendwelche Ideen? Vielen Dank im Voraus

Antwort

0

Vielen Dank Sebastian und Robert!

ich keinen Erfolg hatte die encodeURI verwenden, jedoch habe ich queryParam und es funktioniert

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

Vielen Dank!

0

Ich habe gerade versucht diese:

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

Und es gibt mir:

"%7B%22virtualGuests%22:%7B%22hostname%22:%7B%22operation%22:%22hostnameTest%22%7D%7D%7D"