簡體   English   中英

從 REST-Assured 中的 XML 響應中獲取值

[英]Getting a value from XML response in REST-Assured

我正在嘗試使用REST Assured從 XML 響應中獲取值,但我只獲取空值。

XML 示例:

<?xml version="1.0" ?>
<ncresponse
    orderID="50143601"
    STATUS="5"
    SCORING="1"
    SCO_CATEGORY="G">
</ncresponse>

我的代碼:

RestAssured.useRelaxedHTTPSValidation();
Map<String, String> body = new HashMap<>();
body.put("ORDERID", orderId);
body.put("USERID", QUERY.getUser());
body.put("PSW", QUERY.getPass());
Response validation = given().proxy(host("myproxy.com").withPort(8080)
    ).params(body).when().get(QUERY.getUrl());

return from(validation.asString()).get("ncresponse.STATUS");

在這種情況下,我試圖獲取STATUS值(“5”),但我得到的只是任何屬性的""

任何幫助將不勝感激。

您需要首先將響應轉換為 xml 類型,然后從該響應中獲取值。

首先,您需要在代碼中導入以下內容:

import io.restassured.path.xml.XmlPath;

然后你的代碼應該是:

String stringResponse = validation.asString();
XmlPath xmlPath = new XmlPath(stringResponse);
String status = xmlPath.get("ncresponse.STATUS");

現在字符串status包含您想要的值。

好吧,我意識到我在這里犯了一個錯誤。 我試圖從節點“ncresponse”獲取一個屬性,因此在需要該屬性之前使用“@”符號:

from(validation.asString()).get("ncresponse.@STATUS");

我關閉了,謝謝大家!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM