共用方式為


CUrl 類別

這個類別代表URL。 它可讓您獨立操作 URL 的每個元素,無論是剖析現有的 URL 字串,還是從頭建置字串。

重要

這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。

語法

class CUrl

成員

公用建構函式

名稱 描述
CUrl::CUrl 建構函式。
CUrl::~CUrl 解構函式。

公用方法

名稱 描述
CUrl::Canonicalize 呼叫這個方法,將URL字串轉換成標準格式。
CUrl::Clear 呼叫此方法以清除所有 URL 欄位。
CUrl::CrackUrl 呼叫此方法以譯碼並剖析 URL。
CUrl::CreateUrl 呼叫此方法以建立URL。
CUrl::GetExtraInfo 呼叫此方法以從 URL 取得額外的資訊(例如 文字 或 # text)。
CUrl::GetExtraInfoLength 呼叫這個方法,以取得從 URL 擷取的額外資訊長度(例如 文字 或 # text)。
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 的額外資訊(例如 文字 或 # text)。
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 瞭解下列格式的網址:

<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:“someone”

  • 密碼:“secret”

  • HostName:“www.microsoft.com

  • PortNumber:80

  • UrlPath:“visualc/stuff.htm”

  • ExtraInfo:“#contents”

若要操作 UrlPath 字段(例如),您可以使用 GetUrlPathGetUrlPathLengthSetUrlPath。 您會使用 CreateUrl 來建立完整的 URL 字串。

需求

標頭: atlutil.h

CUrl::Canonicalize

呼叫這個方法,將URL字串轉換成標準格式。

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

參數

dwFlags
控制標準化的旗標。 如果未指定旗標 (dwFlags = 0),方法會將所有不安全的字元和中繼序列 (例如 \.,\ .., 和 \...) 轉換為逸出序列。 dwFlags 可以是下列其中一個值:

  • ATL_URL_BROWSER_MODE:不會編碼或譯碼 「#」 或 「後面的字元,也不會移除」後面的尾端空格符。 如果未指定此值,則會編碼整個 URL,並移除尾端空格符。

  • ATL_URL _DECODE:在剖析 URL 之前,將所有 %XX 序列轉換成字元,包括逸出序列。

  • ATL_URL _ENCODE_PERCENT:編碼所遇到的任何百分比符號。 根據預設,百分比符號不會編碼。

  • ATL_URL _ENCODE_SPACES_ONLY:僅編碼空格。

  • ATL_URL _NO_ENCODE:不會將不安全字元轉換成逸出序列。

  • ATL_URL _NO_META:不會從 URL 移除中繼序列 (例如 “.” 和 “..”。

傳回值

在成功時傳回 TRUE,失敗時傳回 FALSE。

備註

轉換成標準形式牽涉到將不安全的字元和空格轉換成逸出序列。

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,在剖析之後,將所有逸出字元轉換成其實際值。 (在 Visual C++ 2005 之前,ATL_URL_DECODE剖析之前轉換所有逸出字元。

傳回值

在成功時傳回 TRUE,失敗時傳回 FALSE。

CUrl::CreateUrl

此方法會從 CUrl 物件的元件欄位建構 URL 字串。

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

參數

lpszUrl
要保存完整 URL 字串的字串緩衝區。

pdwMaxLength
lpszUrl 字串緩衝區的最大長度。

dwFlags
指定 ATL_URL_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 取得額外的資訊(例如 文字 或 # text)。

inline LPCTSTR GetExtraInfo() const throw();

傳回值

傳回包含額外資訊的字串。

CUrl::GetExtraInfoLength

呼叫這個方法,以取得從 URL 擷取的額外資訊長度(例如 文字 或 # text)。

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();

傳回值

回描述 URL 配置ATL_URL_SCHEME 值。

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 的額外資訊(例如 文字 或 # text)。

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。

另請參閱

類別