# VRequest

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

theRequest se crea automáticamente para cada petición realizada, y permite acceder a la petición para obtener información y preparar la respuesta.

Con ayuda de la clase [VResponse](https://doc.velneo.com/21/velneo-vdevelop/scripts/lenguajes/javascript/clases/vresponse), podremos definir la respuesta.

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)()          |

**De GET**

| Retorno | Función                     |
| ------- | --------------------------- |
| String  | [GET](#get)( String szKey ) |
| Array   | [GETkeys](#getkeys)()       |

**De POST**

| Retorno | Función                       |
| ------- | ----------------------------- |
| String  | [POST](#post)( String szKey ) |
| Array   | [POSTKeys](#postkeys)()       |

**De URI**

| Retorno | Función                       |
| ------- | ----------------------------- |
| String  | [pathInfo](#pathinfo)()       |
| String  | [unparsedUri](#unparseduri)() |
| String  | [uri](#uri)()                 |

**De cuerpo**

| Retorno                                                                                                | Función               |
| ------------------------------------------------------------------------------------------------------ | --------------------- |
| String                                                                                                 | [body](#body)()       |
| String                                                                                                 | [method](#method)()   |
| [VByteArray](https://doc.velneo.com/21/velneo-vdevelop/scripts/lenguajes/javascript/clases/vbytearray) | [rawBody](#rawbody)() |

## Documentación de funciones

### Funciones de cabecera

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

Devuelve el valor de la cabecera que indicamos como parámetro.

Parámetros:

* szHeader: Cadena con el nombre de la cabecera cuyo valor queremos obtener.

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

Devuelve un array de cadenas que contiene los nombres de cabecera obtenidos de la petición.

### Funciones de GET

#### String GET( String szKey ) <a href="#get" id="get"></a>

Devuelve el valor correspondiente a la variable cuyo nomre indicamos como parámetro.

Parámetros:

* szKey: Cadena con el nombre de la variable cuyo valor queremos obtener.

#### Array GETkeys() <a href="#getkeys" id="getkeys"></a>

Devuelve un array de cadenas con los nombres de las variables recibidas en la petición.

### Funciones de POST

#### String POST( String szKey ) <a href="#post" id="post"></a>

Devuelve el valor correspondiente a la variable cuyo nombre indicamos como parámetro.

Parámetros:

* szKey: Cadena con el nombre de la variable cuyo valor queremos obtener.

Nota:

Esta función es válida para el método x-www-form-urlencoded.

Para multipart/form debemos procesar la salida de la función body().

#### Array POSTKeys() <a href="#postkeys" id="postkeys"></a>

Devuelve un array de cadenas con los nombres de las variables recibidas en la petición.

Nota:

Esta función es válida para el método x-www-form-urlencoded.

Para multipart/form debemos procesar la salida de la función body().

### Funciones de URI

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

Devuelve de la petición la parte correspondiente a la senda.

```javascript
// Ejemplo para url: PROCESO.PRO?pp=1
pathInfo() = /PROCESO.PRO
```

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

Devuelve la URI completa sin parsear.

```javascript
// Ejemplo para url: PROCESO.PRO?pp=1
unparsedUri() = /velneo/PROCESO.PRO?pp=1
```

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

Devuelve de la petición la URI completa sin las variables.

```javascript
// Ejemplo para url: PROCESO.PRO?pp=1
uri() = /velneo/PROCESO.PRO
```

### Funciones de cuerpo

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

Devuelve el contenido del cuerpo de la petición.

Nota:

La salida de la función body() es string, por lo que los ficheros binarios han de enviarse codificados en Base64.

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

Devuelve el método correspondiente a la petición.

#### VByteArray rawBody() <a href="#rawbody" id="rawbody"></a>

Devuelve el contenido del cuerpo de la petición como binario en un objeto de la clase [VByteArray](https://doc.velneo.com/21/velneo-vdevelop/scripts/lenguajes/javascript/clases/vbytearray).
