Classe CUrl

Essa classe representa uma URL. Ela permite manipular cada elemento da URL independentemente dos outros, seja analisando uma cadeia de caracteres de URL existente ou criando uma cadeia de caracteres do zero.

Importante

Essa classe e os respectivos membros não podem ser usados em aplicativos executados no Windows Runtime.

Sintaxe

class CUrl

Membros

Construtores públicos

Nome Descrição
CUrl::CUrl O construtor .
CUrl::~CUrl O destruidor.

Métodos públicos

Nome Descrição
CUrl::Canonicalize Chame esse método para converter a cadeia de caracteres da URL para a forma canônica.
CUrl::Clear Chame esse método para limpar todos os campos de URL.
CUrl::CrackUrl Chame esse método para decodificar e analisar a URL.
CUrl::CreateUrl Chame esse método para criar a URL.
CUrl::GetExtraInfo Chame esse método para obter informações extras (como texto ou texto #) da URL.
CUrl::GetExtraInfoLength Chame esse método para obter o comprimento das informações extras (como texto ou texto #) para recuperar da URL.
CUrl::GetHostName Chame esse método para obter o nome do host da URL.
CUrl::GetHostNameLength Chame esse método para obter o comprimento do nome do host.
CUrl::GetPassword Chame esse método para obter a senha da URL.
CUrl::GetPasswordLength Chame esse método para obter o comprimento da senha.
CUrl::GetPortNumber Chame esse método para obter o número da porta em termos de ATL_URL_PORT.
CUrl::GetScheme Chame esse método para obter o esquema de URL.
CUrl::GetSchemeName Chame esse método para obter o nome do esquema de URL.
CUrl::GetSchemeNameLength Chame esse método para obter o comprimento nome do esquema de URL.
CUrl::GetUrlLength Chame esse método para obter o comprimento da URL.
CUrl::GetUrlPath Chame esse método para obter o caminho da URL.
CUrl::GetUrlPathLength Chame esse método para obter o comprimento do caminho da URL.
CUrl::GetUserName Chame esse método para obter o nome do usuário da URL.
CUrl::GetUserNameLength Chame esse método para obter o comprimento do nome do usuário.
CUrl::SetExtraInfo Chame esse método para definir as informações extras (como texto ou texto #) da URL.
CUrl::SetHostName Chame esse método para definir o nome do host.
CUrl::SetPassword Chame esse método para definir a senha.
CUrl::SetPortNumber Chame esse método para definir o número da porta em termos de ATL_URL_PORT.
CUrl::SetScheme Chame esse método para definir o esquema de URL.
CUrl::SetSchemeName Chame esse método para definir o nome do esquema de URL.
CUrl::SetUrlPath Chame esse método para definir o caminho de URL.
CUrl::SetUserName Chame esse método para definir o nome do usuário.

Operadores públicos

Nome Descrição
CUrl::operator = Atribui o objeto CUrl especificado ao objeto CUrl atual.

Comentários

CUrl permite manipular os campos de uma URL, como o caminho ou o número da porta. CUrl compreende URLs do seguinte formulário:

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

(Alguns campos são opcionais.) Por exemplo, considere esta URL:

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

CUrl::CrackUrl a analisa da seguinte maneira:

  • Esquema: "http" ou ATL_URL_SCHEME_HTTP

  • UserName: "someone"

  • Senha: "secret"

  • HostName: "www.microsoft.com"

  • PortNumber: 80

  • UrlPath: "visualc/stuff.htm"

  • ExtraInfo: "#contents"

Para manipular o campo UrlPath (por exemplo), você usaria GetUrlPath, GetUrlPathLength e SetUrlPath. Você usaria CreateUrl para criar a cadeia de caracteres de URL completa.

Requisitos

Cabeçalho: atlutil.h

CUrl::Canonicalize

Chame esse método para converter a cadeia de caracteres da URL para a forma canônica.

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

Parâmetros

dwFlags
Os sinalizadores que controlam a canonização. Se nenhum sinalizador for especificado (dwFlags = 0), o método converterá todos os caracteres não seguros e meta sequências (como \.,\ .., e \...) em sequências de escape. dwFlags pode ter um dos seguintes valores:

  • ATL_URL_BROWSER_MODE: não codifica ou decodifica caracteres após "#" ou "" e não remove o espaço em branco à direita após "". Se esse valor não for especificado, toda a URL será codificada e o espaço em branco à direita será removido.

  • ATL_URL _DECODE: converte todas as sequências %XX em caracteres, incluindo sequências de escape, antes que a URL seja analisada.

  • ATL_URL _ENCODE_PERCENT: codifica qualquer sinal de porcentagem encontrado. Por padrão, os sinais de porcentagem não são codificados.

  • ATL_URL _ENCODE_SPACES_ONLY: codifica apenas espaços.

  • ATL_URL _NO_ENCODE: não converte caracteres não seguros em sequências de escape.

  • ATL_URL _NO_META: não remove sequências meta (como "." e "..") da URL.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

Comentários

A conversão em forma canônica envolve a conversão de caracteres e espaços não seguros em sequências de escape.

CUrl::Clear

Chame esse método para limpar todos os campos de URL.

inline void Clear() throw();

CUrl::CrackUrl

Chame esse método para decodificar e analisar a URL.

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

Parâmetros

lpszUrl
A URL .

dwFlags
Especifique ATL_URL_DECODE ou ATL_URL_ESCAPE para converter todos os caracteres de escape em lpszUrl em seus valores reais após a análise. (Antes do Visual C++ 2005, ATL_URL_DECODE convertia todos os caracteres de escape antes da análise.)

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

CUrl::CreateUrl

Esse método constrói uma cadeia de caracteres de URL dos campos de componente de um objeto CUrl.

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

Parâmetros

lpszUrl
Um buffer de cadeia de caracteres para manter a cadeia de caracteres de URL completa.

pdwMaxLength
O comprimento máximo do buffer de cadeia de caracteres lpszUrl.

dwFlags
Especifique ATL_URL_ESCAPE para converter todos os caracteres de escape em lpszUrl em seus valores reais.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

Comentários

Esse método acrescenta seus campos individuais para construir a cadeia de caracteres de URL completa usando o seguinte formato:

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

Ao chamar esse método, o parâmetro pdwMaxLength deve inicialmente conter o comprimento máximo do buffer de cadeia de caracteres referenciado pelo parâmetro lpszUrl. O valor do parâmetro pdwMaxLength será atualizado com o comprimento real da cadeia de caracteres de URL.

Exemplo

Este exemplo demonstra a criação de um objeto CUrl e a recuperação de sua cadeia de caracteres de 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

O construtor .

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

Parâmetros

urlThat
O objeto CUrl a ser copiado para criar a URL.

CUrl::~CUrl

O destruidor.

~CUrl() throw();

CUrl::GetExtraInfo

Chame esse método para obter informações extras (como texto ou texto #) da URL.

inline LPCTSTR GetExtraInfo() const throw();

Valor de Devolução

Retorna uma cadeia de caracteres que contém as informações extras.

CUrl::GetExtraInfoLength

Chame esse método para obter o comprimento das informações extras (como texto ou texto #) para recuperar da URL.

inline DWORD GetExtraInfoLength() const throw();

Valor de Devolução

Retorna o comprimento da cadeia de caracteres que contém as informações extras.

CUrl::GetHostName

Chame esse método para obter o nome do host da URL.

inline LPCTSTR GetHostName() const throw();

Valor de Devolução

Retorna o nome do host.

CUrl::GetHostNameLength

Chame esse método para obter o comprimento do nome do host.

inline DWORD GetHostNameLength() const throw();

Valor de Devolução

Retorna o comprimento do nome do host.

CUrl::GetPassword

Chame esse método para obter a senha da URL.

inline LPCTSTR GetPassword() const throw();

Valor de Devolução

Retorna a senha.

CUrl::GetPasswordLength

Chame esse método para obter o comprimento da senha.

inline DWORD GetPasswordLength() const throw();

Valor de Devolução

Retorna o comprimento da senha.

CUrl::GetPortNumber

Chame esse método para obter o número da porta.

inline ATL_URL_PORT GetPortNumber() const throw();

Valor de Devolução

Retorna o número da porta.

CUrl::GetScheme

Chame esse método para obter o esquema de URL.

inline ATL_URL_SCHEME GetScheme() const throw();

Valor de Devolução

Retorna o valor ATL_URL_SCHEME que descreve o esquema da URL.

CUrl::GetSchemeName

Chame esse método para obter o nome do esquema de URL.

inline LPCTSTR GetSchemeName() const throw();

Valor de Devolução

Retorna o nome do esquema de URL (como "http" ou "ftp").

CUrl::GetSchemeNameLength

Chame esse método para obter o comprimento nome do esquema de URL.

inline DWORD GetSchemeNameLength() const throw();

Valor de Devolução

Retorna o tamanho do nome do esquema de URL.

CUrl::GetUrlLength

Chame esse método para obter o comprimento da URL.

inline DWORD GetUrlLength() const throw();

Valor de Devolução

Retorna o comprimento da URL.

CUrl::GetUrlPath

Chame esse método para obter o caminho da URL.

inline LPCTSTR GetUrlPath() const throw();

Valor de Devolução

Retorna o caminho da URL.

CUrl::GetUrlPathLength

Chame esse método para obter o comprimento do caminho da URL.

inline DWORD GetUrlPathLength() const throw();

Valor de Devolução

Retorna o comprimento do caminho da URL.

CUrl::GetUserName

Chame esse método para obter o nome do usuário da URL.

inline LPCTSTR GetUserName() const throw();

Valor de Devolução

Retorna nome do usuário.

CUrl::GetUserNameLength

Chame esse método para obter o comprimento do nome do usuário.

inline DWORD GetUserNameLength() const throw();

Valor de Devolução

Retorna comprimento do nome do usuário.

CUrl::operator =

Atribui o objeto CUrl especificado ao objeto CUrl atual.

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

Parâmetros

urlThat
O objeto CUrl a ser copiado para o objeto atual.

Valor de Devolução

Retorna uma referência ao objeto atual.

CUrl::SetExtraInfo

Chame esse método para definir as informações extras (como texto ou texto #) da URL.

inline BOOL SetExtraInfo(LPCTSTR lpszInfo) throw();

Parâmetros

lpszInfo
A cadeia de caracteres que contém as informações extras a serem incluídas na URL.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

CUrl::SetHostName

Chame esse método para definir o nome do host.

inline BOOL SetHostName(LPCTSTR lpszHost) throw();

Parâmetros

lpszHost
O nome de host.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

CUrl::SetPassword

Chame esse método para definir a senha.

inline BOOL SetPassword(LPCTSTR lpszPass) throw();

Parâmetros

lpszPass
A senha.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

CUrl::SetPortNumber

Chame esse método para definir o número da porta.

inline BOOL SetPortNumber(ATL_URL_PORT nPrt) throw();

Parâmetros

nPrt
O número da porta.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

CUrl::SetScheme

Chame esse método para definir o esquema de URL.

inline BOOL SetScheme(ATL_URL_SCHEME nScheme) throw();

Parâmetros

nScheme
Um dos valores ATL_URL_SCHEME para o esquema.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

Comentários

Você também pode definir o esquema por nome (consulte CUrl::SetSchemeName).

CUrl::SetSchemeName

Chame esse método para definir o nome do esquema de URL.

inline BOOL SetSchemeName(LPCTSTR lpszSchm) throw();

Parâmetros

lpszSchm
O nome do esquema de URL.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

Comentários

Você também pode definir o esquema usando uma constante ATL_URL_SCHEME (consulte CUrl::SetScheme).

CUrl::SetUrlPath

Chame esse método para definir o caminho de URL.

inline BOOL SetUrlPath(LPCTSTR lpszPath) throw();

Parâmetros

lpszPath
O caminho da URL.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

CUrl::SetUserName

Chame esse método para definir o nome do usuário.

inline BOOL SetUserName(LPCTSTR lpszUser) throw();

Parâmetros

lpszUser
O nome do usuário.

Valor de Devolução

Retorna TRUE em caso de êxito. FALSE, em caso de falha.

Confira também

Classes