Partager via


Méthode IBackgroundCopyJobHttpOptions ::SetCustomHeaders (bits2_5.h)

Spécifie un ou plusieurs en-têtes HTTP personnalisés à inclure dans les requêtes HTTP.

Syntaxe

HRESULT SetCustomHeaders(
  [in] LPCWSTR RequestHeaders
);

Paramètres

[in] RequestHeaders

Chaîne terminée par null qui contient les en-têtes personnalisés à ajouter à la requête HTTP. Chaque en-tête doit être terminé par un caractère de retour chariot et de flux de ligne (CR/LF). La chaîne est limitée à 16 384 caractères, y compris la fin null.

Pour supprimer les en-têtes personnalisés du travail, définissez le paramètre RequestHeaders sur NULL.

Valeur retournée

Le tableau suivant répertorie certaines des valeurs de retour possibles.

Code de retour Description
S_OK
Réussite.
BG_E_STRING_TOO_LONG
La longueur des en-têtes personnalisés est supérieure à 16 Ko.
BG_E_INVALID_STATE
L’état du travail ne peut pas être BG_JOB_STATE_CANCELLED ou BG_JOB_STATE_ACKNOWLEDGED.

Remarques

Les en-têtes personnalisés s’appliquent uniquement aux fichiers distants qui utilisent le protocole HTTP ou HTTPS. Vous pouvez spécifier des en-têtes personnalisés pour tous les types de travaux.

Seul le propriétaire du travail peut spécifier des en-têtes personnalisés. Si le travail change de propriété, BITS supprime les en-têtes du travail.

Notez que si plusieurs requêtes HTTP sont envoyées, les en-têtes sont envoyés avec chaque requête.

Une ISAPI qui traite l’en-tête personnalisé peut renvoyer une erreur HTTP si l’en-tête n’est pas valide. Pour plus d’informations sur la façon dont BITS gère l’erreur, consultez Gestion des erreurs d’application serveur.

Exemples

L’exemple suivant montre comment spécifier des en-têtes personnalisés pour un travail. L’exemple suppose que pJob pointe vers un travail valide.

// 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();
  }

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête bits2_5.h (include Bits.h)
Bibliothèque Bits.lib

Voir aussi

IBackgroundCopyJobHttpOptions

IBackgroundCopyJobHttpOptions ::GetCustomHeaders