# VResponse

VResponse es un objeto javascript que representa una respuesta para una petición realizada a través de web a Velneo vModApache.

theResponse se crea automáticamente para cada petición realizada, y permite acceder a la respuesta para definirla.

Con ayuda de la clase [VRequest](https://doc.velneo.com/23/velneo-vdevelop/scripts/lenguajes/javascript/clases/vrequest), podremos obtener la información de la petición.

De esta forma podemos gestionar de forma dinámica las peticiones web en un servidor Apache con Velneo vModApache.

## Funciones

**De cabecera**

| Retorno | Función                                                    |
| ------- | ---------------------------------------------------------- |
| String  | [header](#header)( String szHeader )                       |
| Array   | [headerKeys](#headerkeys)()                                |
| void    | [setHeader](#setheader)( String szHeader, String szValue ) |

**De contenido**

| Retorno | Función                                                   |
| ------- | --------------------------------------------------------- |
| String  | [contentType](#contenttype)()                             |
| void    | [setContentType](#setcontenttype)( String szContentType ) |

**De cuerpo**

| Retorno | Función                                      |
| ------- | -------------------------------------------- |
| String  | [body](#body)()                              |
| void    | [setBody](#setbody)( String szBody )         |
| void    | [setRawBody](#setrawbody)( VByteArray body ) |

**De estado**

| Retorno | Función                                   |
| ------- | ----------------------------------------- |
| void    | [setStatus](#setstatus)( Number nStatus ) |
| Number  | [status](#status)()                       |

## Documentación de funciones

### Funciones de cabecera

#### String header( String szHeader ) <a href="#header" id="header"></a>

Devuelve el valor de una cabecera cuyo nombre indicamos como parámetro.

Parámetros:

* szHeader: cadena con el nombre de la cabecera.

#### Array headerKeys() <a href="#headerkeys" id="headerkeys"></a>

Devuelve un array de cadenas con el nombre de las cabeceras obtenidas de la respuesta.

#### void setHeader( String szHeader, String szValue ) <a href="#setheader" id="setheader"></a>

Establece un valor para la cabecera que indicamos como parámetro.

Parámetros:

* szHeader: cadena con el nombre de la cabecera cuyo valor vamos a establecer.
* szValor: cadena con el valor para la cabecera.

### Funciones de contenido

#### String contentType() <a href="#contenttype" id="contenttype"></a>

Devuelve tipo de contenido de la respuesta.

#### void setContentType( String szContentType ) <a href="#setcontenttype" id="setcontenttype"></a>

Establece para la respuesta el tipo de contenido que indicamos como parámetro.

Parámetros:

* szContentType: cadena con el tipo de parámetro que definimos para la respuesta.

### Funciones de cuerpo

#### String body() <a href="#body" id="body"></a>

Devuelve el contenido del cuerpo de la respuesta.

#### void setBody( String szBody ) <a href="#setbody" id="setbody"></a>

Establece el cuerpo de la respuesta con la cadena que indicamos como parámetro.

Parámetros:

* szBody: cadena para definir el contenido del cuerpo de la respuesta.

#### void setRawBody( VByteArray body ) <a href="#setrawbody" id="setrawbody"></a>

Establece el cuerpo de la respuesta con contenido del objeto de la clase [VByteArray](https://doc.velneo.com/23/velneo-vdevelop/scripts/lenguajes/javascript/clases/vbytearray) que indicamos como parámetro.

Parámetros:

* body: objeto de la clase [VByteArray](https://doc.velneo.com/23/velneo-vdevelop/scripts/lenguajes/javascript/clases/vbytearray) que incluye el binario que queremos establecer como cuerpo del envío.

### Funciones de estado

#### void setStatus( Number nStatus ) <a href="#setstatus" id="setstatus"></a>

Establece el estado de la respuesta con el valor que indicamos como parámetro.

Parámetros:

* nStatus: entero que define el estado de la respuesta.

#### Number status() <a href="#status" id="status"></a>

Devuelve el valor del estado de la respuesta.

## Ejemplos

### Ejemplo de manejo de binarios

```javascript
// Creamos el objeto de la clase VByteArray para recibir el cuerpo binario
var baBody= new VByteArray;

// Obtenemos el cuerpo binario
baBody = theRequest.rawBody();

// Procesamos lo obtenido
var length = baBody.length;
var firstChar = baBody[0];
```
