SDK Multiplataforma en C logo

SDK Multiplataforma en C

URL

❮ Anterior
Siguiente ❯

Funciones

Url*url_parse (...)
voidurl_destroy (...)
const char_t*url_scheme (...)
const char_t*url_user (...)
const char_t*url_pass (...)
const char_t*url_host (...)
const char_t*url_path (...)
const char_t*url_params (...)
const char_t*url_query (...)
const char_t*url_fragment (...)
String*url_resource (...)
uint16_turl_port (...)

URL es el acrónimo de Uniform Resource Locator que identifica un recurso único en Internet. El uso más común lo encontramos al realizar peticiones a un servidor Web. Por ejemplo https://www.google.com es una URL ampliamente reconocida y utilizada. Siendo algo más concretos, podemos decir que es una cadena de caracteres con formato específico compuesta por una serie de campos que permiten localizar sin ambigüedad un recurso único global (Listado 1) (Figura 1).

Listado 1: Análisis de una cadena URL.
1
2
3
4
5
Url *url = url_parse("https://frang@www.nappgui.com/services/demo/userlist.php?id=peter&city=Alicante");
const char_t *scheme = url_scheme(url); // https
const char_t *host = url_host(url);     // www.nappgui.com
const char_t *path = url_path(url);     // /services/demo/userlist.php
const char_t *query = url_query(url);   // id=peter&city=Alicante
Una URL completa donde se indican todos sus campos.
Figura 1: Los diferentes campos que componen una URL.
  • Scheme: Protocolo de comunicación utilizado. http, https, ftp, smtp, mailto, etc.
  • Authority: Cadena de acceso al servidor compuesta por varios campos, donde tan solo el nombre del host es requerido. El resto son opcionales.
    • Host: Nombre del servidor o dirección IP.
    • User: Nombre del usuario. Opcional, solo si el servicio lo requiere.
    • Password: Contraseña. Opcional, solo si el servicio lo requiere.
    • Port: Puerto de acceso. Cada protocolo tiene un puerto por defecto, que será el utilizado si no se especifica ninguno. 80 = http, 413 = https.
  • Resource: Ruta dentro del servidor donde se encuentra el recurso que buscamos. El pathname es el único requerido.
    • Pathname: Directorio y nombre del archivo o recurso.
    • Parameters: Lista de argumentos name=value que puede necesitar el servicio. Normalmente no utilizados. Si existen varios valores, se separan con el carácter '&'.
    • Queries: Lista de argumentos name=value que puede necesitar el servicio. Estos son los normalmente utilizados por los servicios Web. Es decir, en la URL hay que utilizar el separador '?' en lugar de ';' después del pathname. Si existen varios valores, se separan con el carácter '&'.
  • Fragment: Es un ancla a una parte concreta del documento que pedimos al servidor. Normalmente utilizado para acceder a un punto concreto de una página HTML.

url_parse ()

Crea un objeto URL a partir de una cadena de texto.

Url*
url_parse(const char_t *url);
url

Cadena de texto C UTF8 terminada en carácter nulo '\0'.

Retorna

Objeto URL resultado tras analizar la cadena.


url_destroy ()

Destruye el objeto URL.

void
url_destroy(Url **url);
url

Objeto URL. Será puesto a NULL tras la destrucción.


url_scheme ()

Obtiene el esquema (protocolo) de la URL.

const char_t*
url_scheme(const Url *url);
url

Objeto URL.

Retorna

Protocolo (http, https, ftp, etc).


url_user ()

Obtiene el usuario.

const char_t*
url_user(const Url *url);
url

Objeto URL.

Retorna

Usuario ó "" si no se especificó.


url_pass ()

Obtiene la contraseña.

const char_t*
url_pass(const Url *url);
url

Objeto URL.

Retorna

Contraseña ó "" si no se especificó.


url_host ()

Obtiene el nombre del servidor.

const char_t*
url_host(const Url *url);
url

Objeto URL.

Retorna

Host (Pe. www.google.com).


url_path ()

Obtiene el camino (directorios + nombre) del recurso o archivo solicitado.

const char_t*
url_path(const Url *url);
url

Objeto URL.

Retorna

Pathname (Pe. /dir1/dir2/file.html).


url_params ()

Obtiene los parámetros (a partir de ';') de la URL.

const char_t*
url_params(const Url *url);
url

Objeto URL.

Retorna

Parámetros ó "" si no se especificaron.


url_query ()

Obtiene los parámetros (a partir de '?') de la URL.

const char_t*
url_query(const Url *url);
url

Objeto URL.

Retorna

Parámetros ó "" si no se especificaron.


url_fragment ()

Obtiene el fragmento (posición o ancla del documento) de la URL.

const char_t*
url_fragment(const Url *url);
url

Objeto URL.

Retorna

Fragmento ó "" si no se especificó.


url_resource ()

Obtiene la dirección completa de un recurso dentro del servidor.

String*
url_resource(const Url *url);
url

Objeto URL.

Retorna

Recurso. path + ";" + params + "?" + query + "#" + fragment.


url_port ()

Obtiene el puerto de acceso al servidor.

uint16_t
url_port(const Url *url);
url

Objeto URL.

Retorna

Puerto. UINT16_MAX si no se especificó.

❮ Anterior
Siguiente ❯