【问题标题】:I get an error message when i try to parse an XML response using REST assured当我尝试使用 REST 保证解析 XML 响应时收到错误消息
【发布时间】:2022-01-05 03:14:09
【问题描述】:

我正在使用这个简单的函数来获取并打印出 XML 响应中的值:

@Test

    void validateXMLResponse() {

        String book = RestAssured.given().when()
                .get("https://chercher.tech/sample/api/books.xml")
                .then().extract().path("bookstore.book.title");
        System.out.println(book);

    }

但我在控制台中收到此错误:

java.lang.ClassCastException: class io.restassured.internal.path.xml.NodeChildrenImpl cannot be cast to class java.lang.String (io.restassured.internal.path.xml.NodeChildrenImpl is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')

【问题讨论】:

    标签: rest-assured


    【解决方案1】:

    由于您的 xml 中有多个 book 节点,您应该使用相应的索引来定义您想要获取的书名。像这样:“bookstore.book[0].title”。或者遍历索引来获取所有的书名。

        @Test
        public void validateXMLResponse() {
            String book = RestAssured.given().when()
                    .get("https://chercher.tech/sample/api/books.xml")
                    .then().extract().body().path("bookstore.book[0].title");
            System.out.println(book);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      相关资源
      最近更新 更多