IBackgroundCopyJobHttpOptions::SetCustomHeaders 方法 (bits2_5.h)

指定要包含在 HTTP 请求中的一个或多个自定义 HTTP 标头。

语法

HRESULT SetCustomHeaders(
  [in] LPCWSTR RequestHeaders
);

参数

[in] RequestHeaders

以 Null 结尾的字符串,其中包含要追加到 HTTP 请求的自定义标头。 每个标头必须由回车符和换行符 (CR/LF) 字符终止。 字符串限制为 16,384 个字符,包括 null 终止符。

若要从作业中删除自定义标头,请将 RequestHeaders 参数设置为 NULL

返回值

下表列出了一些可能的返回值。

返回代码 说明
S_OK
成功。
BG_E_STRING_TOO_LONG
自定义标头的长度超过 16 KB。
BG_E_INVALID_STATE
作业的状态不能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

另请参阅

IBackgroundCopyJobHttpOptions

IBackgroundCopyJobHttpOptions::GetCustomHeaders