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 中指定的,并传递给 CInternetConnection 和 CInternetFile 派生类。 对于对连接或文件执行的特定操作,通常使用自己的 dwContext 替代默认值。 然后,此值返回到 CInternetSession::OnStatusCallback,以标识特定操作的状态。
dwError
导致异常的错误。
备注
你负责根据操作系统错误代码确定原因。
注意
若要调用此函数,项目必须包含 AFXINET.H。
要求
标头:afxinet.h