如何使用放心发布复杂的XML

时间:2016-02-05 14:21:31

标签: java xml post rest-assured

使用rest-assured,我们可以轻松执行GET,POST和其他方法。在下面的示例中,我们将POST发送到返回JSON响应的API。

@Test
public void reserveARide()
{
    given().
        header("Authorization", "abcdefgh-123456").
        param("rideId", "gffgr-3423-gsdgh").
        param("guestCount", 2).
    when().
        post("http://someWebsite/reserveRide").
    then().
        contentType(ContentType.JSON).
        body("result.message", equalTo("success"));
}

但我需要使用复杂的XML主体创建POST请求。 身体示例:

<?xml version="1.0" encoding="UTF-8"?>
<request protocol="3.0" version="xxx" session="xxx">
<info1 param1="xxx" version="xxx" size="xxx" notes="xxx"/>
<info2 param1="xxx" version="xxx" size="xxx" notes="xxx"/>
</request>

我该怎么做? 提前谢谢

2 个答案:

答案 0 :(得分:4)

我将自己的身体保存在资源目录中,并使用以下方法将其读入字符串:

public static String generateStringFromResource(String path) throws IOException {

    return new String(Files.readAllBytes(Paths.get(path)));

}

然后在我的请求中我可以说

String myRequest = generateStringFromResource("path/to/xml.xml")

        given()
            .contentType("application/xml")
            .body(myRequest)
        .when()
            .put("my.url/endpoint/")
        .then()
            statusCode(200)

答案 1 :(得分:0)

我相信你可以这么做:

given().
    contentType("application/xml").
    body(yourbody).
...
...

您还可以发送可序列化的对象,请参阅: https://github.com/jayway/rest-assured/wiki/Usage#serialization