Поделиться через


Класс 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 при сбое.

См. также

Классы