指定一個或多個自訂 HTTP 標頭,以納入 HTTP 請求中。
語法
HRESULT SetCustomHeaders(
[in] LPCWSTR RequestHeaders
);
參數
[in] RequestHeaders
空終止字串,包含可附加於 HTTP 請求的自訂標頭。 每個標頭必須以回車與換行(CR/LF)字元結束。 字串的字元數限制為 16,384 個字元,包括空終止符。
若要移除工作中的自訂標頭,請將 RequestHeaders 參數設為 NULL。
返回值
下表列出了一些可能的回傳值。
| 回傳碼 | Description |
|---|---|
|
成功。 |
|
自訂標頭長度超過 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();
}
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows Vista |
| 支援的最低伺服器 | Windows 伺服器 2008 |
| 目標平臺 | 窗戶 |
| Header | bits2_5.h(包含 Bits.h) |
| Library | Bits.lib |