InternetCombineUrlA 函数 (wininet.h)

将基 URL 和相对 URL 合并为单个 URL。 生成的 URL 规范化(请参阅 InternetCanonicalizeUrl)。

语法

BOOL InternetCombineUrlA(
  [in]      LPCSTR  lpszBaseUrl,
  [in]      LPCSTR  lpszRelativeUrl,
  [out]     LPSTR   lpszBuffer,
  [in, out] LPDWORD lpdwBufferLength,
  [in]      DWORD   dwFlags
);

参数

[in] lpszBaseUrl

指向包含基 URL 的以 null 结尾的字符串的指针。

[in] lpszRelativeUrl

指向包含相对 URL 的以 null 结尾的字符串的指针。

[out] lpszBuffer

指向接收合并 URL 的缓冲区的指针。

[in, out] lpdwBufferLength

指向包含 lpszBuffer 缓冲区大小的变量的指针,以字符为单位。 如果函数成功,此参数将接收组合 URL 的大小(以字符为单位,不包括 null 终止字符)。 如果函数失败,此参数将接收所需缓冲区的大小(包括 null 终止字符)。

[in] dwFlags

控制函数的操作。 此参数可以是下列值之一。

价值 意义
ICU_BROWSER_MODE
不对“#”或“?”后面的字符进行编码或解码,并且不会删除“?”后面的尾随空格。 如果未指定此值,则会对整个 URL 进行编码并删除尾随空格。
ICU_DECODE
在分析 URL 之前,将所有 %XX 序列转换为字符,包括转义序列。
ICU_ENCODE_PERCENT
对遇到的任何百分比符号进行编码。 默认情况下,不会对百分比符号进行编码。 此值在 Internet Explorer 5 及更高版本中Microsoft可用。
ICU_ENCODE_SPACES_ONLY
仅对空格进行编码。
ICU_NO_ENCODE
不将不安全字符转换为转义序列。
ICU_NO_META
不要从 URL 中删除元序列(如“.”和“..”。

返回值

如果成功,则返回 TRUE;否则返回 FALSE。 若要获取扩展的错误信息,请调用 GetLastError。 可能的错误包括以下内容。

返回代码 描述
ERROR_BAD_PATHNAME
无法组合 URL。
ERROR_INSUFFICIENT_BUFFER
提供给函数的缓冲区不足或 NULLlpdwBufferLength 参数指示的值将包含保存合并 URL 所需的字节数。
ERROR_INTERNET_INVALID_URL
URL 的格式无效。
ERROR_INVALID_PARAMETER
字符串、缓冲区、缓冲区大小或标志参数无效。

言论

注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP 服务(WinHTTP)
 

注意

wininet.h 标头将 InternetCombineUrl 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 wininet.h
Wininet.lib
DLL Wininet.dll

另请参阅

处理统一资源定位符

WinINet 函数