httpSendRequestA 函数 (wininet.h)
将指定的请求发送到 HTTP 服务器,允许调用方发送超出通常传递给 HttpSendRequestEx 的数据的额外数据。
语法
BOOL HttpSendRequestA(
[in] HINTERNET hRequest,
[in] LPCSTR lpszHeaders,
[in] DWORD dwHeadersLength,
[in] LPVOID lpOptional,
[in] DWORD dwOptionalLength
);
参数
[in] hRequest
调用 HttpOpenRequest 函数返回的句柄。
[in] lpszHeaders
指向以 null 结尾的字符串的指针,该字符串包含要追加到请求的其他标头。 如果没有要追加的其他标头,此参数可以为 NULL 。
[in] dwHeadersLength
附加标头的大小(以 TCHAR 为单位)。 如果此参数为 -1L 且 lpszHeaders 不为 NULL,则该函数假定 lpszHeaders (ASCIIZ) 为零终止,并计算长度。 有关细节,请参阅备注。
[in] lpOptional
指向缓冲区的指针,该缓冲区包含将在请求标头之后立即发送的任何可选数据。 此参数通常用于 POST 和 PUT 操作。 可选数据可以是要发布到服务器的资源或信息。 如果没有要发送的可选数据,此参数可以为 NULL 。
[in] dwOptionalLength
可选数据的大小(以字节为单位)。 如果没有要发送的可选数据,此参数可以为零。
返回值
如果成功,则返回 TRUE ,否则返回 FALSE 。 要获得更多的错误信息,请调用 GetLastError。
注解
HttpSendRequest 将指定的请求发送到 HTTP 服务器,并允许客户端指定要随请求一起发送的其他标头。
函数还允许客户端指定要紧跟在请求标头之后发送到 HTTP 服务器的可选数据。 此功能通常用于“写入”操作,例如 PUT 和 POST。
发送请求后,将读取来自 HTTP 服务器的状态代码和响应标头。 这些标头在内部维护,并通过 HttpQueryInfo 函数提供给客户端应用程序。
应用程序可以在对 HttpSendRequest 的多个调用中使用相同的 HTTP 请求句柄,但在再次调用函数之前,应用程序必须读取上一次调用返回的所有数据。
在脱机模式下,如果在 Internet 缓存中找不到资源, HttpSendRequest 将返回 ERROR_FILE_NOT_FOUND 。
HttpSendRequest 有两个版本:httpSendRequestA (用于 ANSI 生成) ,httpSendRequestW (用于 Unicode 生成) 。 如果 dwHeadersLength 为 -1L 且 lpszHeaders 不为 NULL,则会发生以下情况:如果调用 HttpSendRequestA ,则函数假定 lpszHeaders (ASCIIZ) 零终止,并计算长度。 如果调用 HttpSendRequestW ,则函数将失败并 ERROR_INVALID_PARAMETER。
注意
wininet.h 标头将 HttpSendRequest 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | wininet.h |
Library | Wininet.lib |
DLL | Wininet.dll |