es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

REST Assegurado no registra el cuerpo de la respuesta.

Tengo el siguiente método:

<https://uri:8080/getVer>

Este método devuelve información sobre la versión de la aplicación. Como esto:

1.39.1

Es texto, no XML, no JSON, no HTML.

Cuando intento usar este método en REST Assured:

        RestAssured.given()
            .log().uri()
            .baseUri("https://uri:8080/")
            .relaxedHTTPSValidation()
            .get("getVer")
            .then()
            .log().all();

No recibo un cuerpo de respuesta:

Registros del proceso:

Request URI:   https://uri:8080/getVer

HTTP/1.1 200
Content-Length: 6
X-Flow-Trace-Id: someTraceId
Content-Type: application/json;charset=UTF-8
Date: Thu, 30 Dec 2021 19:27:03 GMT
Set-Cookie: some_cookie; path=/; Httponly; Secure
Server: some app server

Proceso finalizado con código de salida 0

¿Por qué no recibo el cuerpo de respuesta? Cuando intento ir a este enlace en mi navegador, recibo un valor.

Aquí tienes un ejemplo de Postman: https://i.stack.imgur.com/6GXwi.png

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema puede estar en el tipo de contenido de la respuesta recibida del servidor en comparación con el tipo de contenido esperado por el código REST Assured. En los registros compartidos, el encabezado Content-Type de la respuesta es “application/json;charset=UTF-8”, lo cual indica que la respuesta está en formato JSON. Sin embargo, el código REST Assured no especifica ningún tipo de contenido, por lo tanto, puede estar esperando un tipo de contenido diferente como “application/xml” o “text/plain”.

    Para resolver este problema, puedes intentar especificar el encabezado Content-Type en el código REST Assured, basándote en el formato de la respuesta recibida del servidor. Por ejemplo:

    RestAssured.given()
        .log().uri()
        .baseUri("https://uri:8080/")
        .relaxedHTTPSValidation()
        .header("Content-Type", "application/json")
        .get("getVer")
        .then()
        .log().all();
    

    Alternativamente, también puedes intentar convertir la respuesta de JSON a texto utilizando el método “asString()”, de la siguiente manera:

    String responseText = RestAssured.given()
        .log().uri()
        .baseUri("https://uri:8080/")
        .relaxedHTTPSValidation()
        .get("getVer")
        .asString();
    System.out.println(responseText);
    

    Esto imprimirá el valor de respuesta “1.39.1” en la consola.

Comments are closed.