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.

Eliminar encabezados HTTP innecesarios en la solicitud POST utilizando rest assured.

Cuando envío mi solicitud HTTP POST, veo encabezados que no esperaba (destacados):

Acepta: /
Accept-Encoding: none,gzip,deflate
Content-Type: application/octet-stream; charset=ISO-8859-1

SSL-Client-CN: POS-1234-1234
Anfitrión: 123.123.123.123:8081
Conexión: Keep-Alive
User-Agent: Apache-HttpClient/4.5.13 (Java/1.8.0_312)

¿Cómo puedo eliminarlos?

    @Test
    public HeaderConfig sampleTest() {
        try (InputStream input = new FileInputStream("src/test/resources/local.properties")) {
            Properties prop = new Properties();
            prop.load(input);

            RestAssured.baseURI = prop.getProperty("RestAssured.baseURI");
            RestAssured.port =  Integer.parseInt(prop.getProperty("RestAssured.port"));
        } catch (IOException ex) {
            ex.printStackTrace();
        }

        String test1 = "some string data";

       Response response = given().header("SSL-Client-CN","POS-1234-1234").body(hexStringToByteArray(test1)).when().post().then().using().extract().response();

        String body = response.getBody().asString();
        int status = response.getStatusCode();
        System.out.println(response.getBody().asString());
        Assert.assertEquals(status, 200);

        return null;
    }
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para eliminar encabezados no deseados de la solicitud HTTP POST, simplemente puedes eliminar las entradas de encabezado del método given() donde se construye la solicitud. Por ejemplo, en el fragmento de código dado, puedes eliminar los encabezados Host, Connection y User-Agent al no incluirlos en el método given().

    Aquí tienes un fragmento de código actualizado con esos encabezados eliminados:

    @Test
    public HeaderConfig sampleTest() {
        try (InputStream input = new FileInputStream("src/test/resources/local.properties")) {
            Properties prop = new Properties();
            prop.load(input);
    
            RestAssured.baseURI = prop.getProperty("RestAssured.baseURI");
            RestAssured.port = Integer.parseInt(prop.getProperty("RestAssured.port"));
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    
        String test1 = "some string data";
    
        Response response = given().header("SSL-Client-CN", "POS-1234-1234")
                                  .body(hexStringToByteArray(test1))
                                  .when().post()
                                  .then().using().extract()
                                  .response();
    
        String body = response.getBody().asString();
        int status = response.getStatusCode();
        System.out.println(response.getBody().asString());
        Assert.assertEquals(status, 200);
    
        return null;
    }
    

    Ten en cuenta que los encabezados Accept y Accept-Encoding no se eliminaron, ya que parecen ser encabezados válidos y necesarios para una solicitud HTTP. El encabezado Content-Type tampoco se eliminó, aunque puedes revisarlo para asegurarte de que tenga el valor correcto para tu caso de uso.

Comments are closed.