分享方式:


網際網路 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 指定,並傳遞至 CInternet連線ion - 和 CInternetFile 衍生類別。 針對在連線或檔案上執行的特定作業,您通常會以 您自己的 dwCoNtext 覆寫預設值。 然後,此值會傳回至 CInternetSession::OnStatusCallback ,以識別特定作業的狀態。

dwError
造成例外狀況的錯誤。

備註

您必須負責根據作業系統錯誤碼來判斷原因。

注意

若要呼叫此函式,您的專案必須包含 AFXINET.H。

需求

標頭: afxinet.h

另請參閱

宏和全域
CInternetException 類別
AfxParseURL