Compartir a través de


Clase CUrl

Esta clase representa una dirección URL. Permite manipular cada elemento de la dirección URL independientemente del resto, tanto si se analiza una cadena de dirección URL existente como si se crea una cadena desde cero.

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

class CUrl

Miembros

Constructores públicos

Nombre Descripción
CUrl::CUrl Constructor .
CUrl::~CUrl El destructor .

Métodos públicos

Nombre Descripción
CUrl::Canonicalize Llame a este método para convertir la cadena URL al formato canónico.
CUrl::Clear Llame a este método para borrar todos los campos de dirección URL.
CUrl::CrackUrl Llame a este método para descodificar y analizar la dirección URL.
CUrl::CreateUrl Llame a este método para crear un la URL.
CUrl::GetExtraInfo Llame a este método para obtener información adicional (como texto o # texto) desde la URL.
CUrl::GetExtraInfoLength Llame a este método para obtener la longitud de la información adicional (como texto o # texto) para recuperar de la URL.
CUrl::GetHostName Llame a este método para obtener el nombre del host de la dirección URL.
CUrl::GetHostNameLength Llame a este método para obtener la longitud del nombre de host.
CUrl::GetPassword Llame a este método para obtener la contraseña de la dirección URL.
CUrl::GetPasswordLength Llame a este método para obtener la longitud de la contraseña.
CUrl::GetPortNumber Llame a este método para obtener el número de puerto en términos de ATL_URL_PORT.
CUrl::GetScheme Llame a este método para obtener el esquema de la URL.
CUrl::GetSchemeName Llame a este método para obtener el nombre de esquema de la URL.
CUrl::GetSchemeNameLength Llame a este método para obtener la longitud del nombre de esquema de la URL.
CUrl::GetUrlLength Llame a este método para obtener la longitud de la URL.
CUrl::GetUrlPath Llame a este método para obtener la ruta de acceso de la URL.
CUrl::GetUrlPathLength Llame a este método para obtener la longitud de la ruta de acceso de la URL.
CUrl::GetUserName Llame a este método para obtener el nombre de usuario de la dirección URL.
CUrl::GetUserNameLength Llame a este método para obtener la longitud del nombre de usuario.
CUrl::SetExtraInfo Llame a este método para establecer información adicional (como texto o # texto) de la URL.
CUrl::SetHostName Llame a este método para establecer el nombre de host.
CUrl::SetPassword Llame a este método para establecer la contraseña.
CUrl::SetPortNumber Llame a este método para establecer el número de puerto en términos de ATL_URL_PORT.
CUrl::SetScheme Llame a este método para establecer el esquema de la URL.
CUrl::SetSchemeName Llame a este método para establecer el nombre del esquema de la URL.
CUrl::SetUrlPath Llame a este método para establecer la ruta de acceso del esquema de la URL.
CUrl::SetUserName Llame a este método para establecer el nombre de usuario.

Operadores públicos

Nombre Descripción
CUrl::operator = Asigna el objeto especificado CUrl al objeto actual CUrl.

Comentarios

CUrl permite manipular los campos de una dirección URL, como la ruta de acceso o el número de puerto. CUrl comprende las direcciones URL con el formato siguiente:

<Scheme>://<UserName>:<Password>@<HostName>:<PortNumber>/<UrlPath><ExtraInfo>

(Algunos campos son opcionales). Por ejemplo, considere esta dirección URL:

http://someone:secret@www.microsoft.com:80/visualc/stuff.htm#contents

CUrl::CrackUrl lo analiza de la siguiente manera:

  • Esquema: "http" o ATL_URL_SCHEME_HTTP

  • UserName: "alguien"

  • Contraseña: "secreto"

  • HostName: "www.microsoft.com"

  • PortNumber: 80

  • UrlPath: "visualc/stuff.htm"

  • ExtraInfo: "#contents"

Para manipular el campo UrlPath (por ejemplo), se usaría GetUrlPath, GetUrlPathLength y SetUrlPath. Se usaría CreateUrl para crear la cadena de dirección URL completa.

Requisitos

Header: atlutil.h

CUrl::Canonicalize

Llame a este método para convertir la cadena URL al formato canónico.

inline BOOL Canonicalize(DWORD dwFlags = 0) throw();

Parámetros

dwFlags
Marcas que controlan la canonización. Si no se especifica ninguna marca (dwFlags = 0), el método convierte todos los caracteres no seguros y las secuencias meta (como \.,\ .., y \...) en secuencias de escape. dwFlags puede tener uno de los siguientes valores:

  • ATL_URL_BROWSER_MODE: no codifica ni descodifica los caracteres después de "#" o "" y no quita el espacio en blanco final después de "". Si no se especifica este valor, se codifica toda la dirección URL y se quita el espacio en blanco final.

  • ATL_URL _DECODE: convierte todas las secuencias %XX en caracteres, incluidas las secuencias de escape, antes de analizar la dirección URL.

  • ATL_URL _ENCODE_PERCENT: codifica los signos de porcentaje encontrados. De forma predeterminada, los signos de porcentaje no están codificados.

  • ATL_URL _ENCODE_SPACES_ONLY: codifica solamente espacios.

  • ATL_URL _NO_ENCODE: no convierte caracteres no seguros en secuencias de escape.

  • ATL_URL _NO_META: no quita las secuencias meta (como "." y "..") de la dirección URL.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

La conversión en formato canónico implica el convertir caracteres y espacios no seguros en secuencias de escape.

CUrl::Clear

Llame a este método para borrar todos los campos de dirección URL.

inline void Clear() throw();

CUrl::CrackUrl

Llame a este método para descodificar y analizar la dirección URL.

BOOL CrackUrl(LPCTSTR lpszUrl, DWORD dwFlags = 0) throw();

Parámetros

lpszUrl
La dirección URL.

dwFlags
Especifique ATL_URL_DECODE o ATL_URL_ESCAPE para convertir todos los caracteres de escape en lpszUrl en sus valores reales después del análisis. (Antes de Visual C++ 2005, ATL_URL_DECODE convertía todos los caracteres de escape antes de analizar).

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

CUrl::CreateUrl

Este método construye una cadena URL a partir de los campos componentes de un objeto CUrl.

inline BOOL CreateUrl(
    LPTSTR lpszUrl,
    DWORD* pdwMaxLength,
    DWORD dwFlags = 0) const throw();

Parámetros

lpszUrl
Búfer de cadena que contiene la cadena URL completa.

pdwMaxLength
Longitud máxima del búfer de cadena lpszUrl.

dwFlags
Especifique ATL_URL_ESCAPE para convertir todos los caracteres de escape en lpszUrl en sus valores.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Este método anexa sus campos individuales a fin de construir la cadena URL completa con el siguiente formato:

<scheme>://<user>:<pass>@<domain>:<port><path><extra>

Al llamar a este método, el parámetro pdwMaxLength debe contener inicialmente la longitud máxima del búfer de cadena al que hace referencia el parámetro lpszUrl. El valor del parámetro pdwMaxLength se actualizará con la longitud real de la cadena URL.

Ejemplo

En este ejemplo se muestra la creación de un objeto CUrl y la recuperación de su cadena URL

CUrl url;

// Set the CUrl contents
url.CrackUrl(_T("http://someone:secret@www.microsoft.com:8080/visualc/stuff.htm#contents"));

// Obtain the length of the URL string and allocate a buffer to 
// hold its contents
DWORD dwUrlLen = url.GetUrlLength() + 1;
TCHAR* szUrl = new TCHAR[dwUrlLen];

// Retrieve the contents of the CUrl object
url.CreateUrl(szUrl, &dwUrlLen, 0L);

// Cleanup
delete[] szUrl;   

CUrl::CUrl

Constructor .

CUrl() throw();
CUrl(const CUrl& urlThat) throw();

Parámetros

urlThat
Objeto CUrl que se va a copiar para crear la dirección URL.

CUrl::~CUrl

El destructor .

~CUrl() throw();

CUrl::GetExtraInfo

Llame a este método para obtener información adicional (como texto o # texto) desde la URL.

inline LPCTSTR GetExtraInfo() const throw();

Valor devuelto

Devuelve una cadena que contiene la información adicional.

CUrl::GetExtraInfoLength

Llame a este método para obtener la longitud de la información adicional (como texto o # texto) para recuperar de la URL.

inline DWORD GetExtraInfoLength() const throw();

Valor devuelto

Devuelve la longitud de la cadena que contiene la información adicional.

CUrl::GetHostName

Llame a este método para obtener el nombre del host de la dirección URL.

inline LPCTSTR GetHostName() const throw();

Valor devuelto

Devuelve el nombre de host.

CUrl::GetHostNameLength

Llame a este método para obtener la longitud del nombre de host.

inline DWORD GetHostNameLength() const throw();

Valor devuelto

Devuelve la longitud del nombre de host.

CUrl::GetPassword

Llame a este método para obtener la contraseña de la dirección URL.

inline LPCTSTR GetPassword() const throw();

Valor devuelto

Devuelve la contraseña.

CUrl::GetPasswordLength

Llame a este método para obtener la longitud de la contraseña.

inline DWORD GetPasswordLength() const throw();

Valor devuelto

Devuelve la longitud de la contraseña.

CUrl::GetPortNumber

Llame a este método para obtener el número de puerto.

inline ATL_URL_PORT GetPortNumber() const throw();

Valor devuelto

Devuelve el número de puerto.

CUrl::GetScheme

Llame a este método para obtener el esquema de la URL.

inline ATL_URL_SCHEME GetScheme() const throw();

Valor devuelto

Devuelve el valor ATL_URL_SCHEME que describe el esquema de la URL.

CUrl::GetSchemeName

Llame a este método para obtener el nombre de esquema de la URL.

inline LPCTSTR GetSchemeName() const throw();

Valor devuelto

Devuelve el nombre del esquema de la URL (por ejemplo, "http" o "ftp").

CUrl::GetSchemeNameLength

Llame a este método para obtener la longitud del nombre de esquema de la URL.

inline DWORD GetSchemeNameLength() const throw();

Valor devuelto

Devuelve la longitud del nombre del esquema de la URL.

CUrl::GetUrlLength

Llame a este método para obtener la longitud de la URL.

inline DWORD GetUrlLength() const throw();

Valor devuelto

Devuelve la longitud de la dirección URL.

CUrl::GetUrlPath

Llame a este método para obtener la ruta de acceso de la URL.

inline LPCTSTR GetUrlPath() const throw();

Valor devuelto

Devuelve la ruta de acceso de la dirección URL.

CUrl::GetUrlPathLength

Llame a este método para obtener la longitud de la ruta de acceso de la URL.

inline DWORD GetUrlPathLength() const throw();

Valor devuelto

Devuelve la longitud de la ruta de acceso de la dirección URL.

CUrl::GetUserName

Llame a este método para obtener el nombre de usuario de la dirección URL.

inline LPCTSTR GetUserName() const throw();

Valor devuelto

Devuelve el nombre de usuario.

CUrl::GetUserNameLength

Llame a este método para obtener la longitud del nombre de usuario.

inline DWORD GetUserNameLength() const throw();

Valor devuelto

Devuelve la longitud del nombre de usuario.

CUrl::operator =

Asigna el objeto especificado CUrl al objeto actual CUrl.

CUrl& operator= (const CUrl& urlThat) throw();

Parámetros

urlThat
Objeto CUrl que se va a copiar al objeto actual.

Valor devuelto

Devuelve una referencia al objeto actual.

CUrl::SetExtraInfo

Llame a este método para establecer información adicional (como texto o # texto) de la URL.

inline BOOL SetExtraInfo(LPCTSTR lpszInfo) throw();

Parámetros

lpszInfo
Cadena que contiene la información adicional que se va a incluir en la dirección URL.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

CUrl::SetHostName

Llame a este método para establecer el nombre de host.

inline BOOL SetHostName(LPCTSTR lpszHost) throw();

Parámetros

lpszHost
El nombre de host.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

CUrl::SetPassword

Llame a este método para establecer la contraseña.

inline BOOL SetPassword(LPCTSTR lpszPass) throw();

Parámetros

lpszPass
La contraseña.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

CUrl::SetPortNumber

Llame a este método para establecer el número de puerto.

inline BOOL SetPortNumber(ATL_URL_PORT nPrt) throw();

Parámetros

nPrt
Número del puerto.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

CUrl::SetScheme

Llame a este método para establecer el esquema de la URL.

inline BOOL SetScheme(ATL_URL_SCHEME nScheme) throw();

Parámetros

nScheme
Uno de los valores de ATL_URL_SCHEME para el esquema.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

También se puede establecer el esquema por nombre (consulte CUrl::SetSchemeName).

CUrl::SetSchemeName

Llame a este método para establecer el nombre del esquema de la URL.

inline BOOL SetSchemeName(LPCTSTR lpszSchm) throw();

Parámetros

lpszSchm
Nombre de esquema de la URL.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

También se puede establecer el esquema mediante una constante ATL_URL_SCHEME (consulte CUrl::SetScheme).

CUrl::SetUrlPath

Llame a este método para establecer la ruta de acceso del esquema de la URL.

inline BOOL SetUrlPath(LPCTSTR lpszPath) throw();

Parámetros

lpszPath
Ruta de acceso de la URL.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

CUrl::SetUserName

Llame a este método para establecer el nombre de usuario.

inline BOOL SetUserName(LPCTSTR lpszUser) throw();

Parámetros

lpszUser
Nombre de usuario.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Consulte también

Clases