Internet URL 分析全局和帮助程序

当某个客户端发送查询到 Internet 服务器时,您可以使用 URL 分析全局变量之一提取有关此客户端的信息。 帮助程序函数提供其他 Internet 功能。

Internet URL 分析全局函数

名称 描述
AfxParseURL 分析 URL 字符串并返回服务类型及其组件。
AfxParseURLEx 分析 URL 字符串并返回服务类型及其组件,这与提供用户名和密码一样。

其他 Internet 帮助程序

名称 描述
AfxThrowInternetException 引发与 Internet 连接相关的异常。
AfxGetInternetHandleType 确定 Internet 句柄的类型。

AfxParseURL

此全局函数用于 CInternetSession::OpenURL

BOOL AFXAPI AfxParseURL(
    LPCTSTR pstrURL,
    DWORD& dwServiceType,
    CString& strServer,
    CString& strObject,
    INTERNET_PORT& nPort);

参数

pstrURL
指向字符串的指针,该字符串包含要分析的 URL。

dwServiceType
指示 Internet 服务的类型。 可能的值如下所示:

  • 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 已成功分析,则为非零值;否则,如果为空或不包含已知的 Internet 服务类型,则为 0。

备注

它分析 URL 字符串并返回服务类型及其组件。

例如,AfxParseURL 分析窗体 service://server/dir/dir/object.ext:port 的 URL,并返回存储的组件,如下所示

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
指示 Internet 服务的类型。 可能的值如下所示:

  • 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 已成功分析,则为非零值;否则,如果为空或不包含已知的 Internet 服务类型,则为 0。

备注

它分析 URL 字符串并返回服务类型及其组件,并提供用户名和用户密码一样。 标志指示如何处理不安全字符。

注意

若要调用此函数,项目必须包含 AFXINET.H。

要求

标头 afxinet.h

AfxGetInternetHandleType

使用此全局函数确定 Internet 句柄的类型。

语法

DWORD AFXAPI AfxGetInternetHandleType(  HINTERNET hQuery );

参数

hQuery
Internet 查询的句柄。

返回值

WININET.H 定义的任何 Internet 服务类型。 有关这些 Internet 服务的列表,请参阅“注解”部分。 如果句柄为 NULL 或无法识别,则函数返回 AFX_INET_SERVICE_UNK。

备注

以下列表包括 AfxGetInternetHandleType 返回的可能的 Internet 类型。

  • 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

引发 Internet 异常。

语法

   void AFXAPI AfxThrowInternetException(  DWORD dwContext,  DWORD dwError = 0 );

参数

dwContext
导致错误的操作的上下文标识符。 dwContext 默认值最初是在 CInternetSession 中指定的,并传递给 CInternetConnectionCInternetFile 派生类。 对于对连接或文件执行的特定操作,通常使用自己的 dwContext 替代默认值。 然后,此值返回到 CInternetSession::OnStatusCallback,以标识特定操作的状态。

dwError
导致异常的错误。

备注

你负责根据操作系统错误代码确定原因。

注意

若要调用此函数,项目必须包含 AFXINET.H。

要求

标头:afxinet.h

另请参阅

宏和全局函数
CInternetException 类
AfxParseURL