J'ai l'API GET REST, qui envoie des informations dans l'en-tête de réponse. Je suis en train d'écrire un cas de test en utilisant le cadre de repos assuré, problème auquel je suis confronté, en réponse à l'API GET, je ne reçois pas la chaîne d'en-tête définie par le serveur dans la réponse API de repos. J'ai vérifié la même API dans Rest client et HTTP Resource, là je peux voir les informations d'en-tête définies par le serveur dans la réponse de l'API.Impossible de récupérer les données d'en-tête dans le repos assuré pour le service Web de repos de type GET
Mais dans l'objet de réponse repos rassuré, les informations d'en-tête définies par le serveur ne sont pas disponibles.
Rest Code API:
@Path("/download")
@GET
@Produces("application/zip")
public Response downloadContractZipFile(@PathParam("contractId") final String contractId) throws CMException{
ContractActionRequest contractActionRequest = new ContractActionRequest();
contractActionRequest.setId(contractId);
DownloadActionResponse downloadActionResponse = (DownloadActionResponse) executeAction(Action.DOWNLOAD, contractActionRequest);
Response res = Response
.ok(downloadActionResponse.getFilestream(), MediaType.APPLICATION_OCTET_STREAM)
.header("content-disposition",downloadActionResponse.getContentDisposition())
.header("Expires", "0")
.header("Content-Length", String.valueOf(downloadActionResponse.getContentLength()))
.build();
return res;
}
Ci-dessus vous pouvez voir, l'API est de retour Content-Length en-tête. Mais lorsque j'appelle l'API ci-dessus en utilisant un cadre de repos, elle ne reçoit pas "Content-Length" dans l'en-tête. Assert est en train d'échouer. Rassurez-vous le code de cas de test:
given().get(propertyURI).then().assertThat().header("Content-Length","7562");
java.lang.AssertionError: Expected header "Content-Length" was not "7562", was "null". Headers are:
X-Powered-By=Servlet/3.0
Cache-Control=no-cache, no-store
Cache-directive=no-cache
Pragma=no-cache
Pragma-Directive=no-cache
Expires=Thu, 01 Jan 1970 00:00:00 GMT
Content-Type=text/html;charset=UTF-8
x-authenticated=false
x-location=https://reena:9453/app/login.jsp?targetApp=OM
Content-Language=en-US
Transfer-Encoding=chunked