2016-02-05 17 views
5

Sử dụng yên tâm, chúng tôi có thể dễ dàng thực hiện GET, POST và các phương thức khác. Trong ví dụ bên dưới, chúng tôi đang gửi POST tới API trả về phản hồi JSON.Cách đăng XML phức tạp bằng cách sử dụng phần còn lại được đảm bảo

@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")); 
} 

Nhưng tôi cần tạo yêu cầu POST với nội dung XML phức tạp. Ví dụ cơ thể:

<?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> 

Tôi làm cách nào để thực hiện việc này? Cảm ơn bạn trước

Trả lời

2

tôi giữ cơ thể của tôi trong thư mục tài nguyên, và đọc chúng thành chuỗi bằng cách sử dụng phương pháp sau:

public static String GenerateStringFromResource(String path) throws IOException { 

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

} 

Sau đó, trong yêu cầu của tôi, tôi có thể nói

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

     given() 
      .contentType("application/xml") 
      .body(myRequest) 
     .when() 
      .put("my.url/endpoint/") 
     .then() 
      statusCode(200) 
Các vấn đề liên quan