因特網 URL 剖析全域和協助程式
當用戶端將查詢傳送至網際網路伺服器時,您可以使用其中一個 URL 剖析全域來擷取用戶端的相關資訊。 協助程式函式提供其他因特網功能。
網際網路 URL 剖析全域
名稱 | 描述 |
---|---|
AfxParseURL | 剖析 URL 字串並傳回服務類型及其元件。 |
AfxParseURLEx | 剖析 URL 字串並傳回服務類型及其元件,並提供使用者名稱和密碼。 |
其他因特網協助程式
名稱 | 描述 |
---|---|
AfxThrowInternetException | 擲回與因特網連線相關的例外狀況。 |
AfxGetInternetHandleType | 決定因特網句柄的類型。 |
AfxParseURL
此全域用於 CInternetSession::OpenURL。
BOOL AFXAPI AfxParseURL(
LPCTSTR pstrURL,
DWORD& dwServiceType,
CString& strServer,
CString& strObject,
INTERNET_PORT& nPort);
參數
pstrURL
字串的指標,其中包含要剖析的URL。
dwServiceType
表示因特網服務的類型。 可能值如下所示:
AFX_INET_SERVICE_FTP
AFX_INET_SERVICE_HTTP
AFX_INET_SERVICE_HTTPS
AFX_INET_SERVICE_GOPHER
AFX_INET_SERVICE_FILE
AFX_INET_SERVICE_MAILTO
AFX_INET_SERVICE_NEWS
AFX_INET_SERVICE_NNTP
AFX_INET_SERVICE_TELNET
AFX_INET_SERVICE_WAIS
AFX_INET_SERVICE_MID
AFX_INET_SERVICE_CID
AFX_INET_SERVICE_PROSPERO
AFX_INET_SERVICE_AFS
AFX_INET_SERVICE_UNK
strServer
服務類型之後 URL 的第一個區段。
strObject
URL 參考的物件(可能是空的)。
nPort
如果其中一個都存在,請從URL的伺服器或物件部分決定。
傳回值
如果 URL 已成功剖析,則為非零;否則,如果它是空的,或不包含已知的因特網服務類型,則為 0。
備註
它會剖析 URL 字串,並傳回服務和其元件的類型。
例如, AfxParseURL
剖析表單 的 URL service://server/dir/dir/object.ext:port ,並傳回其儲存的元件,如下所示:
strServer == “server”
strObject == “/dir/dir/object/object.ext”
nPort == #port
dwServiceType == #service
注意
若要呼叫此函式,您的專案必須包含 AFXINET.H。
需求
標頭 afxinet.h
AfxParseURLEx
此全域函式是 AfxParseURL 的擴充版本,並用於 CInternetSession::OpenURL。
BOOL AFXAPI AfxParseURLEx(
LPCTSTR pstrURL,
DWORD& dwServiceType,
CString& strServer,
CString& strObject,
INTERNET_PORT& nPort,
CString& strUsername,
CString& strPassword,
DWORD dwFlags = 0);
參數
pstrURL
字串的指標,其中包含要剖析的URL。
dwServiceType
表示因特網服務的類型。 可能值如下所示:
AFX_INET_SERVICE_FTP
AFX_INET_SERVICE_HTTP
AFX_INET_SERVICE_HTTPS
AFX_INET_SERVICE_GOPHER
AFX_INET_SERVICE_FILE
AFX_INET_SERVICE_MAILTO
AFX_INET_SERVICE_NEWS
AFX_INET_SERVICE_NNTP
AFX_INET_SERVICE_TELNET
AFX_INET_SERVICE_WAIS
AFX_INET_SERVICE_MID
AFX_INET_SERVICE_CID
AFX_INET_SERVICE_PROSPERO
AFX_INET_SERVICE_AFS
AFX_INET_SERVICE_UNK
strServer
服務類型之後 URL 的第一個區段。
strObject
URL 參考的物件(可能是空的)。
nPort
如果其中一個都存在,請從URL的伺服器或物件部分決定。
strUsername
對象的參考 CString
,其中包含用戶的名稱。
strPassword
對象的參考 CString
,其中包含用戶的密碼。
dwFlags
控制如何剖析 URL 的旗標。 可以是下列值的組合:
值 | 意義 |
---|---|
ICU_DECODE | 將 %XX 逸出序列轉換成字元。 |
ICU_NO_ENCODE | 請勿將不安全的字元轉換成逸出序列。 |
ICU_NO_META | 請勿從 URL 移除中繼序列(例如 “\ .” 和 “\ ..”。 |
ICU_ENCODE_SPACES_ONLY | 僅編碼空格。 |
ICU_BROWSER_MODE | 請勿在 『#』 或 '' 後面編碼或譯碼字元,而且不要移除 '' 後面的尾端空格符。 如果未指定此值,則會編碼整個 URL,並移除尾端空格符。 |
如果您使用沒有旗標的 MFC 預設值,函式會轉換所有不安全的字元和中繼序列(例如 \.、\ ..和 \...) 來逸出序列。
傳回值
如果 URL 已成功剖析,則為非零;否則,如果它是空的,或不包含已知的因特網服務類型,則為 0。
備註
它會剖析 URL 字串,並傳回服務和其元件的類型,以及提供使用者的名稱和密碼。 旗標會指出如何處理不安全的字元。
注意
若要呼叫此函式,您的專案必須包含 AFXINET.H。
需求
標頭 afxinet.h
AfxGetInternetHandleType
使用此全域函式來判斷因特網句柄的類型。
語法
DWORD AFXAPI AfxGetInternetHandleType( HINTERNET hQuery );
參數
hQuery
因特網查詢的句柄。
傳回值
WININET.H 所定義的任何因特網服務類型。 如需這些因特網服務的清單,請參閱一節。 如果句柄為 NULL 或無法辨識,函式會傳回AFX_INET_SERVICE_UNK。
備註
下列清單包含 所 AfxGetInternetHandleType
傳回的可能因特網類型。
INTERNET_HANDLE_TYPE_INTERNET
INTERNET_HANDLE_TYPE_CONNECT_FTP
INTERNET_HANDLE_TYPE_CONNECT_GOPHER
INTERNET_HANDLE_TYPE_CONNECT_HTTP
INTERNET_HANDLE_TYPE_FTP_FIND
INTERNET_HANDLE_TYPE_FTP_FIND_HTML
INTERNET_HANDLE_TYPE_FTP_FILE
INTERNET_HANDLE_TYPE_FTP_FILE_HTML
INTERNET_HANDLE_TYPE_GOPHER_FIND
INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML
INTERNET_HANDLE_TYPE_GOPHER_FILE
INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML
INTERNET_HANDLE_TYPE_HTTP_REQUEST
注意
若要呼叫此函式,您的專案必須包含 AFXINET.H。
需求
標頭: afxinet.h
AfxThrowInternetException
擲回因特網例外狀況。
語法
void AFXAPI AfxThrowInternetException( DWORD dwContext, DWORD dwError = 0 );
參數
dwContext
造成錯誤之作業的內容識別碼。 dwContext 的預設值原本是在 CInternetSession 中指定,並傳遞至 CInternetConnection- 和 CInternetFile 衍生類別。 針對在連線或檔案上執行的特定作業,您通常會以 您自己的 dwContext 覆寫預設值。 然後,此值會傳回至 CInternetSession::OnStatusCallback ,以識別特定作業的狀態。
dwError
造成例外狀況的錯誤。
備註
您必須負責根據操作系統錯誤碼來判斷原因。
注意
若要呼叫此函式,您的專案必須包含 AFXINET.H。
需求
標頭: afxinet.h