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 字段(例如),您可以使用 GetUrlPath、GetUrlPathLength 和 SetUrlPath。 您會使用 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();
傳回值
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。