2016-02-05 15 views
5

Usando il riposo sicuro possiamo facilmente eseguire GET, POST e altri metodi. Nell'esempio seguente inviamo un POST a un'API che restituisce una risposta JSON.Come postare XML complessi usando il riposo assicurato

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

Ma ho bisogno di creare una richiesta POST con un corpo XML complesso. Corpo esempio:

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

Come posso fare questo? Grazie in anticipo

risposta

2

Mantenere il mio corpo nella directory di risorse, e leggerli in una stringa utilizzando il seguente metodo:

public static String GenerateStringFromResource(String path) throws IOException { 

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

} 

Quindi nella mia richiesta posso dire

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

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