Класс CUrl
Этот класс представляет URL-адрес. Он позволяет управлять каждым элементом URL-адреса независимо от других, будь то анализ существующей строки URL-адреса или создание строки с нуля.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
class CUrl
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CUrl::CUrl | Конструктор. |
CUrl::~CUrl | Деструктор |
Открытые методы
Имя | Описание |
---|---|
CUrl::Канонизация | Вызовите этот метод, чтобы преобразовать строку URL-адреса в каноническую форму. |
CUrl::Clear | Вызовите этот метод, чтобы очистить все поля URL-адреса. |
CUrl::CrackUrl | Вызовите этот метод для декодирования и анализа URL-адреса. |
CUrl::CreateUrl | Вызовите этот метод для создания URL-адреса. |
CUrl::GetExtraInfo | Вызовите этот метод, чтобы получить дополнительные сведения (например, текст или текст #) из URL-адреса. |
CUrl::GetExtraInfoLength | Вызовите этот метод, чтобы получить длину дополнительных сведений (например, текста или текста#), чтобы получить из URL-адреса. |
CUrl::GetHostName | Вызовите этот метод, чтобы получить имя узла из URL-адреса. |
CUrl::GetHostNameLength | Вызовите этот метод, чтобы получить длину имени узла. |
CUrl::GetPassword | Вызовите этот метод, чтобы получить пароль из URL-адреса. |
CUrl::GetPasswordLength | Вызовите этот метод, чтобы получить длину пароля. |
CUrl::GetPortNumber | Вызовите этот метод, чтобы получить номер порта с точки зрения ATL_URL_PORT. |
CUrl::GetScheme | Вызовите этот метод, чтобы получить схему URL-адресов. |
CUrl::GetSchemeName | Вызовите этот метод, чтобы получить имя схемы URL-адресов. |
CUrl::GetSchemeNameLength | Вызовите этот метод, чтобы получить длину имени схемы URL-адреса. |
CUrl::GetUrlLength | Вызовите этот метод, чтобы получить длину URL-адреса. |
CUrl::GetUrlPath | Вызовите этот метод, чтобы получить путь URL-адреса. |
CUrl::GetUrlPathLength | Вызовите этот метод, чтобы получить длину пути URL-адреса. |
CUrl::GetUserName | Вызовите этот метод, чтобы получить имя пользователя из URL-адреса. |
CUrl::GetUserNameLength | Вызовите этот метод, чтобы получить длину имени пользователя. |
CUrl::SetExtraInfo | Вызовите этот метод, чтобы задать дополнительные сведения (например, текст или текст #) URL-адреса. |
CUrl::SetHostName | Вызовите этот метод, чтобы задать имя узла. |
CUrl::SetPassword | Вызовите этот метод, чтобы задать пароль. |
CUrl::SetPortNumber | Вызовите этот метод, чтобы задать номер порта с точки зрения ATL_URL_PORT. |
CUrl::SetScheme | Вызовите этот метод, чтобы задать схему URL-адресов. |
CUrl::SetSchemeName | Вызовите этот метод, чтобы задать имя схемы URL-адреса. |
CUrl::SetUrlPath | Вызовите этот метод, чтобы задать путь URL-адреса. |
CUrl::SetUserName | Вызовите этот метод, чтобы задать имя пользователя. |
Открытые операторы
Имя | Описание |
---|---|
CUrl::operator = | Назначает указанный CUrl объект текущему CUrl объекту. |
Замечания
CUrl
позволяет управлять полями URL-адреса, такими как путь или номер порта. CUrl
понимает URL-адреса следующей формы:
<Scheme>://<UserName:Password>@<HostName>>:<<PortNumber>/<UrlPath><ExtraInfo>
(Некоторые поля являются необязательными.) Например, рассмотрим этот URL-адрес:
http://someone:secret@www.microsoft.com:80/visualc/stuff.htm#contents
CUrl::CrackUrl анализирует его следующим образом:
Схема: http или ATL_URL_SCHEME_HTTP
UserName: "кто-то"
Пароль: "secret"
HostName: "
www.microsoft.com
"Номер порта: 80
UrlPath: "visualc/stuff.htm"
ExtraInfo: "#contents"
Для управления полем UrlPath (например, можно использовать GetUrlPath, GetUrlPathLength и SetUrlPath). Вы будете использовать CreateUrl для создания полной строки URL-адреса.
Требования
Заголовок: atlutil.h
CUrl::Канонизация
Вызовите этот метод, чтобы преобразовать строку URL-адреса в каноническую форму.
inline BOOL Canonicalize(DWORD dwFlags = 0) throw();
Параметры
dwFlags
Флаги, управляющие канонизацией. Если флаги не указаны (dwFlags = 0), метод преобразует все небезопасные символы и мета последовательности (например, \.,\ .., и \...) в escape-последовательности. DwFlags может быть одним из следующих значений:
ATL_URL_BROWSER_MODE: не кодирует или декодирует символы после "#" или "" и не удаляет конечный пробел после "". Если это значение не указано, весь URL-адрес закодирован и удаляется конечный пробел.
ATL_URL _DECODE. Преобразует все последовательности %XX в символы, включая escape-последовательности, перед анализом URL-адреса.
ATL_URL _ENCODE_PERCENT. Кодирует все знаки процента, которые обнаружены. По умолчанию знаки процента не кодируются.
ATL_URL _ENCODE_SPACES_ONLY. Кодирует только пробелы.
ATL_URL _NO_ENCODE. Не преобразует небезопасные символы в escape-последовательности.
ATL_URL _NO_META. Не удаляет мета последовательности (например, "." и ".") из URL-адреса.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
Замечания
Преобразование в каноническую форму включает преобразование небезопасных символов и пробелов в escape-последовательности.
CUrl::Clear
Вызовите этот метод, чтобы очистить все поля URL-адреса.
inline void Clear() throw();
CUrl::CrackUrl
Вызовите этот метод для декодирования и анализа URL-адреса.
BOOL CrackUrl(LPCTSTR lpszUrl, DWORD dwFlags = 0) throw();
Параметры
lpszUrl
URL-адрес .
dwFlags
Укажите ATL_URL_DECODE или ATL_URL_ESCAPE для преобразования всех escape-символов в lpszUrl в их реальные значения после анализа. (До Visual C++ 2005 ATL_URL_DECODE преобразовал все escape-символы перед синтаксический анализ.)
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
CUrl::CreateUrl
Этот метод создает строку URL-адреса из полей компонентов объекта CUrl.
inline BOOL CreateUrl(
LPTSTR lpszUrl,
DWORD* pdwMaxLength,
DWORD dwFlags = 0) const throw();
Параметры
lpszUrl
Буфер строки для хранения полной строки URL-адреса.
pdwMaxLength
Максимальная длина буфера строки lpszUrl .
dwFlags
Укажите ATL_URL_ESCAPE для преобразования всех escape-символов в lpszUrl в их реальные значения.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
Замечания
Этот метод добавляет отдельные поля, чтобы создать полную строку URL-адреса с помощью следующего формата:
<scheme>://<user>:pass>@<domain>:<<port><path><extra>
При вызове этого метода параметр pdwMaxLength должен изначально содержать максимальную длину буфера строки, на который ссылается параметр lpszUrl . Значение параметра pdwMaxLength будет обновлено с фактической длиной строки URL-адреса.
Пример
В этом примере показано создание объекта CUrl и получение строки 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
Конструктор.
CUrl() throw();
CUrl(const CUrl& urlThat) throw();
Параметры
URLThat
CUrl
Объект для копирования для создания URL-адреса.
CUrl::~CUrl
Деструктор
~CUrl() throw();
CUrl::GetExtraInfo
Вызовите этот метод, чтобы получить дополнительные сведения (например, текст или текст #) из URL-адреса.
inline LPCTSTR GetExtraInfo() const throw();
Возвращаемое значение
Возвращает строку, содержащую дополнительные сведения.
CUrl::GetExtraInfoLength
Вызовите этот метод, чтобы получить длину дополнительных сведений (например, текста или текста#), чтобы получить из URL-адреса.
inline DWORD GetExtraInfoLength() const throw();
Возвращаемое значение
Возвращает длину строки, содержащей дополнительные сведения.
CUrl::GetHostName
Вызовите этот метод, чтобы получить имя узла из URL-адреса.
inline LPCTSTR GetHostName() const throw();
Возвращаемое значение
Возвращает имя узла.
CUrl::GetHostNameLength
Вызовите этот метод, чтобы получить длину имени узла.
inline DWORD GetHostNameLength() const throw();
Возвращаемое значение
Возвращает длину имени узла.
CUrl::GetPassword
Вызовите этот метод, чтобы получить пароль из URL-адреса.
inline LPCTSTR GetPassword() const throw();
Возвращаемое значение
Возвращает пароль.
CUrl::GetPasswordLength
Вызовите этот метод, чтобы получить длину пароля.
inline DWORD GetPasswordLength() const throw();
Возвращаемое значение
Возвращает длину пароля.
CUrl::GetPortNumber
Вызовите этот метод, чтобы получить номер порта.
inline ATL_URL_PORT GetPortNumber() const throw();
Возвращаемое значение
Возвращает номер порта.
CUrl::GetScheme
Вызовите этот метод, чтобы получить схему URL-адресов.
inline ATL_URL_SCHEME GetScheme() const throw();
Возвращаемое значение
Возвращает значение ATL_URL_SCHEME, описывающее схему URL-адреса.
CUrl::GetSchemeName
Вызовите этот метод, чтобы получить имя схемы URL-адресов.
inline LPCTSTR GetSchemeName() const throw();
Возвращаемое значение
Возвращает имя схемы URL-адресов (например, http или ftp).
CUrl::GetSchemeNameLength
Вызовите этот метод, чтобы получить длину имени схемы URL-адреса.
inline DWORD GetSchemeNameLength() const throw();
Возвращаемое значение
Возвращает длину имени схемы URL-адресов.
CUrl::GetUrlLength
Вызовите этот метод, чтобы получить длину URL-адреса.
inline DWORD GetUrlLength() const throw();
Возвращаемое значение
Возвращает длину URL-адреса.
CUrl::GetUrlPath
Вызовите этот метод, чтобы получить путь URL-адреса.
inline LPCTSTR GetUrlPath() const throw();
Возвращаемое значение
Возвращает путь URL-адреса.
CUrl::GetUrlPathLength
Вызовите этот метод, чтобы получить длину пути URL-адреса.
inline DWORD GetUrlPathLength() const throw();
Возвращаемое значение
Возвращает длину пути URL-адреса.
CUrl::GetUserName
Вызовите этот метод, чтобы получить имя пользователя из URL-адреса.
inline LPCTSTR GetUserName() const throw();
Возвращаемое значение
Возвращает имя пользователя.
CUrl::GetUserNameLength
Вызовите этот метод, чтобы получить длину имени пользователя.
inline DWORD GetUserNameLength() const throw();
Возвращаемое значение
Возвращает длину имени пользователя.
CUrl::operator =
Назначает указанный CUrl
объект текущему CUrl
объекту.
CUrl& operator= (const CUrl& urlThat) throw();
Параметры
URLThat
Объект CUrl
для копирования в текущий объект.
Возвращаемое значение
Возвращает ссылку на текущий объект .
CUrl::SetExtraInfo
Вызовите этот метод, чтобы задать дополнительные сведения (например, текст или текст #) URL-адреса.
inline BOOL SetExtraInfo(LPCTSTR lpszInfo) throw();
Параметры
lpszInfo
Строка, содержащая дополнительные сведения для включения в URL-адрес.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
CUrl::SetHostName
Вызовите этот метод, чтобы задать имя узла.
inline BOOL SetHostName(LPCTSTR lpszHost) throw();
Параметры
lpszHost
Имя сервера.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
CUrl::SetPassword
Вызовите этот метод, чтобы задать пароль.
inline BOOL SetPassword(LPCTSTR lpszPass) throw();
Параметры
lpszPass
Пароль.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
CUrl::SetPortNumber
Вызовите этот метод, чтобы задать номер порта.
inline BOOL SetPortNumber(ATL_URL_PORT nPrt) throw();
Параметры
nPrt
номер порта.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
CUrl::SetScheme
Вызовите этот метод, чтобы задать схему URL-адресов.
inline BOOL SetScheme(ATL_URL_SCHEME nScheme) throw();
Параметры
nScheme
Одно из ATL_URL_SCHEME значений схемы.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
Замечания
Вы также можете задать схему по имени (см. раздел CUrl::SetSchemeName).
CUrl::SetSchemeName
Вызовите этот метод, чтобы задать имя схемы URL-адреса.
inline BOOL SetSchemeName(LPCTSTR lpszSchm) throw();
Параметры
lpszSchm
Имя схемы URL-адресов.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
Замечания
Можно также задать схему с помощью константы ATL_URL_SCHEME (см. статью CUrl::SetScheme).
CUrl::SetUrlPath
Вызовите этот метод, чтобы задать путь URL-адреса.
inline BOOL SetUrlPath(LPCTSTR lpszPath) throw();
Параметры
lpszPath
Путь URL-адреса.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.
CUrl::SetUserName
Вызовите этот метод, чтобы задать имя пользователя.
inline BOOL SetUserName(LPCTSTR lpszUser) throw();
Параметры
lpszUser
Имя пользователя.
Возвращаемое значение
Возвращает значение TRUE при успешном выполнении, false при сбое.