java - Rest Assured execption class io.restassured.path.xml.XmlPath cannot be cast to class java.util.ArrayList error
问题描述
我正在从事 Rest Assured 项目,我想获得响应主体的特定部分,但我得到了例外:
Exception in thread "main" java.lang.ClassCastException: class io.restassured.path.xml.XmlPath cannot be cast to class java.util.ArrayList (io.restassured.path.xml.XmlPath is in unnamed module of loader 'app'; java.util.ArrayList is in module java.base of loader 'bootstrap')
该代码取自教程网站,因此它应该可以正常工作。任何人都可以帮忙吗?
public static void getSpecificPartOfResponseBody(){
ArrayList<String> amounts = when().get(url).then().extract().path("result.statements.AMOUNT") ;
int sumOfAll=0;
for(String a:amounts){
System.out.println("The amount value fetched is "+a);
sumOfAll=sumOfAll+Integer.valueOf(a);
}
System.out.println("The total amount is "+sumOfAll);
}
回复正文:
{"result:":{"statements":[{"TRANSACTION_ID":"12","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2013-11-16","AMOUNT":"500","TRANSACTION_TYPE":"D","DESCRIPTION":"Initial Deposit"},{"TRANSACTION_ID":"23","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2013-11-17","AMOUNT":"14","TRANSACTION_TYPE":"t","DESCRIPTION":"yi Tansfer From 14"},{"TRANSACTION_ID":"25","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2013-11-18","AMOUNT":"1","TRANSACTION_TYPE":"t","DESCRIPTION":"hgg Tansfer From 15"},{"TRANSACTION_ID":"49745","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2017-04-13","AMOUNT":"0","TRANSACTION_TYPE":"t","DESCRIPTION":"0 Tansfer From 1"},{"TRANSACTION_ID":"94867","ACCOUNT_NO":"1","DATE_OF_TRANSACTION":"2018-11-21","AMOUNT":"500","TRANSACTION_TYPE":"t","DESCRIPTION":"cash Tansfer From 14"}]},"message":{"ErrorCode:":0,"ErrorMsg:":"Success"}}
解决方案
url 是 php,contenttype 不是 json 而是 HTML。path(...) 仅适用于 json。您可以将这个想法用于另一个内容类型为 json 的 URL。我使用了这个:https://dummy.restapiexample.com/api/v1/employees与此代码:
public static void getSpecificPartOfResponseBody(){
ArrayList<Integer> ages;
ages = when().get(url).then().extract().path("data.employee_age");
int sumOfAll=0;
for(Integer a :ages){
System.out.println("The age value fetched is "+a);
sumOfAll=sumOfAll+ a;
}
System.out.println("The total amount of ages is " + sumOfAll);
}
推荐阅读
- powershell - 使用 Windows 任务计划程序运行 powershell 脚本时未生成日志文件
- visual-studio-code - VSCode - 用于代码建议的 auto_prepend_file
- c# - 将 Excel 文件保存到用户桌面时如何解决问题?
- python - 在 SymPy 中计算符号表达式并在 Julia 中将它们转换为数字
- javascript - 从javascript中的api响应转换为图像
- vue.js - 如何决定何时重新渲染/更新 Vuejs 组件中的元素?
- list - 如何从 Netlogo 中的代理创建一个有序的属性列表?
- javascript - 如何将所有东西都放在一个游戏功能中以运行石头剪刀布游戏
- python-asyncio - 如何在 Asyncio 中获得非阻塞 SSL 套接字?
- angular - How to enable / disable a button based on a checkbox being checked in Angular