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 |
---|---|
|
Réussite. |
|
La longueur des en-têtes personnalisés est supérieure à 16 Ko. |
|
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 |