IBackgroundCopyJobHttpOptions::SetCustomHeaders 方法 (bits2_5.h)
指定要包含在 HTTP 请求中的一个或多个自定义 HTTP 标头。
语法
HRESULT SetCustomHeaders(
[in] LPCWSTR RequestHeaders
);
参数
[in] RequestHeaders
以 Null 结尾的字符串,其中包含要追加到 HTTP 请求的自定义标头。 每个标头必须由回车符和换行符 (CR/LF) 字符终止。 字符串限制为 16,384 个字符,包括 null 终止符。
若要从作业中删除自定义标头,请将 RequestHeaders 参数设置为 NULL。
返回值
下表列出了一些可能的返回值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
自定义标头的长度超过 16 KB。 |
|
作业的状态不能BG_JOB_STATE_CANCELLED或BG_JOB_STATE_ACKNOWLEDGED。 |
注解
自定义标头仅适用于使用 HTTP 或 HTTPS 协议的远程文件。 可以为所有作业类型指定自定义标头。
只有作业所有者可以指定自定义标头。 如果作业更改了所有权,则 BITS 会从作业中删除标头。
请注意,如果发送了多个 HTTP 请求,则标头随每个请求一起发送。
如果标头无效,处理自定义标头的 ISAPI 可能会返回 HTTP 错误。 有关 BITS 如何处理错误的详细信息,请参阅 处理服务器应用程序错误。
示例
以下示例演示如何为作业指定自定义标头。 该示例假定 pJob 指向有效的作业。
// Custom headers to include in job.
#define HEADERS L"MyHeader_1: Header One Value\r\n" \
L"MyHeader_2: Header Two Value\r\n" \
L"MyHeader_3: Header Three Value\r\n"
HRESULT hr = S_OK;
IBackgroundCopyJob* pJob = NULL;
IBackgroundCopyJobHttpOptions* pHttpOptions = NULL;
hr = pJob->QueryInterface(__uuidof(IBackgroundCopyJobHttpOptions), (void**)&pHttpOptions);
pJob->Release();
if (FAILED(hr))
{
wprintf(L"pJob->QueryInterface failed with 0x%x.\n", hr);
goto cleanup;
}
hr = pHttpOptions->SetCustomHeaders(HEADERS);
if (FAILED(hr))
{
wprintf(L"pHttpOptions->SetCustomHeaders failed with 0x%x.\n", hr);
goto cleanup;
}
cleanup:
if (pHttpOptions)
{
hr = pHttpOptions->Release();
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | bits2_5.h (包括 Bits.h) |
Library | Bits.lib |