【问题标题】:Rest assured : Illegal character in path放心:路径中的非法字符
【发布时间】:2018-08-19 09:50:59
【问题描述】:

我正在使用从一个端点检索到的响应作为另一个端点中的路径参数。

但是,当在 URI 中使用时,它会抛出 java.net.URISyntaxException: Illegal character in path。

//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 的值,请指教。

【问题讨论】:

    标签: java testing rest-assured


    【解决方案1】:

    首先和开发者谈谈这个,因为路径参数(/{id})的性质是要替换为合法值(不包含在引号中);类似https://abc/23https://abc/param

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

    【讨论】:

      【解决方案2】:

      在这里在黑暗中拍摄,因为我觉得问题可能来自您如何从该响应中获取字符串。如果您使用 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 时感到困惑。

      【讨论】:

        【解决方案3】:

        感谢 John 和 Mohan 抽出宝贵时间,非常感谢。

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

        【讨论】:

          猜你喜欢
          • 2019-08-30
          • 1970-01-01
          • 2012-03-05
          • 2018-02-28
          • 2015-07-31
          • 2014-03-22
          • 2010-09-26
          相关资源
          最近更新 更多