URL
Funciones
Url* | url_parse (...) |
void | url_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_t | url_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).
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 |
- 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 |
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 |
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ó.