请放心:路径中的字符非法

时间:2018-08-19 09:51:00

标签: java testing rest-assured

我将从一个端点获取的响应用作另一个端点的路径参数。

但是,当在URI中使用时,它将引发java.net.URISyntaxException:路径中的非法字符。

//Post the endpoint
    Response resp2 = RestAssured.given().
            pathParam("id", build).
            log().all().
            when().urlEncodingEnabled(false).post("https://abc/{id}");

这是因为uri中使用的id的值带有双引号,例如: https://abc/“ id”。

我该如何删除这些双引号,以便使用uri中id的值,请告知。

3 个答案:

答案 0 :(得分:0)

首先与开发人员讨论此问题,因为路径参数(/ {id})的性质将由合法值(不包含在引号中)代替;类似https://abc/23https://abc/param

我不建议任何解决方法,因为这是从REST端点定义以错误的方式实现的。您可能会继续对此提出缺陷。

答案 1 :(得分:0)

在这里进行黑暗拍摄是因为我觉得问题可能可能出在您如何从响应中获取字符串。如果您要使用GSON或类似的方法从JSON中提取它:

String name = myResponseJsonObject.get("member_name")
System.out.Println(name);

将打印

  

“约翰”

 String name = myResponseJsonObject.get("member_name").getAsString()
 System.out.Println(name);

会给您

  

约翰

一个小细节,但这在使用GSON和其他在Java中使用JSON时使我震惊。

答案 2 :(得分:0)

谢谢约翰和莫汉的宝贵时间,我真的很感激。

我昨天晚上使用Stringof函数解决了这个问题,该函数删除了双引号并为我提供了类似String的值。