Freigeben über


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
S_OK
Erfolg.
BG_E_STRING_TOO_LONG
Die Länge der benutzerdefinierten Header beträgt mehr als 16 KB.
BG_E_INVALID_STATE
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

Weitere Informationen

IBackgroundCopyJobHttpOptions

IBackgroundCopyJobHttpOptions::GetCustomHeaders