IBackgroundCopyJobHttpOptions::SetCustomHeaders-Methode (bits2_5.h)
Gibt mindestens einen benutzerdefinierten HTTP-Header an, der in HTTP-Anforderungen eingeschlossen werden soll.
Syntax
HRESULT SetCustomHeaders(
[in] LPCWSTR RequestHeaders
);
Parameter
[in] RequestHeaders
Null-beendete Zeichenfolge, die die benutzerdefinierten Header enthält, die an die HTTP-Anforderung angefügt werden sollen. Jeder Header muss durch ein Wagenrücklauf- und Zeilenvorschubzeichen (CR/LF) beendet werden. Die Zeichenfolge ist auf 16.384 Zeichen beschränkt, einschließlich des NULL-Abschlusszeichens.
Um die benutzerdefinierten Header aus dem Auftrag zu entfernen, legen Sie den RequestHeaders-Parameter auf NULL fest.
Rückgabewert
In der folgenden Tabelle sind einige der möglichen Rückgabewerte aufgeführt.
Rückgabecode | Beschreibung |
---|---|
|
Erfolg. |
|
Die Länge der benutzerdefinierten Header beträgt mehr als 16 KB. |
|
Der Status des Auftrags kann nicht BG_JOB_STATE_CANCELLED oder BG_JOB_STATE_ACKNOWLEDGED werden. |
Hinweise
Die benutzerdefinierten Header gelten nur für Remotedateien, die das HTTP- oder HTTPS-Protokoll verwenden. Sie können benutzerdefinierte Header für alle Auftragstypen angeben.
Nur der Auftragsbesitzer kann benutzerdefinierte Header angeben. Wenn der Auftrag den Besitz ändert, entfernt BITS die Header aus dem Auftrag.
Beachten Sie, dass die Header mit jeder Anforderung gesendet werden, wenn mehrere HTTP-Anforderungen gesendet werden.
Eine ISAPI, die den benutzerdefinierten Header verarbeitet, kann einen HTTP-Fehler zurückgeben, wenn der Header ungültig ist. Ausführliche Informationen zur Behandlung des Fehlers durch BITS finden Sie unter Behandeln von Serveranwendungsfehlern.
Beispiele
Das folgende Beispiel zeigt, wie benutzerdefinierte Header für einen Auftrag angegeben werden. Im Beispiel wird davon ausgegangen, dass pJob auf einen gültigen Auftrag verweist.
// 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();
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | bits2_5.h (Bits.h einschließen) |
Bibliothek | Bits.lib |