Condividi tramite


Metodo IBackgroundCopyJobHttpOptions::SetCustomHeaders (bits2_5.h)

Specifica una o più intestazioni HTTP personalizzate da includere nelle richieste HTTP.

Sintassi

HRESULT SetCustomHeaders(
  [in] LPCWSTR RequestHeaders
);

Parametri

[in] RequestHeaders

Stringa con terminazione null contenente le intestazioni personalizzate da aggiungere alla richiesta HTTP. Ogni intestazione deve essere terminata da un carattere di ritorno a capo e di feed di riga (CR/LF). La stringa è limitata a 16.384 caratteri, incluso il terminatore Null.

Per rimuovere le intestazioni personalizzate dal processo, impostare il parametro RequestHeaders su NULL.

Valore restituito

Nella tabella seguente sono elencati alcuni dei possibili valori restituiti.

Codice restituito Descrizione
S_OK
Operazione completata.
BG_E_STRING_TOO_LONG
La lunghezza delle intestazioni personalizzate è superiore a 16 KB.
BG_E_INVALID_STATE
Lo stato del processo non può essere BG_JOB_STATE_CANCELLED o BG_JOB_STATE_ACKNOWLEDGED.

Commenti

Le intestazioni personalizzate sono applicabili solo ai file remoti che usano il protocollo HTTP o HTTPS. È possibile specificare intestazioni personalizzate per tutti i tipi di processo.

Solo il proprietario del processo può specificare intestazioni personalizzate. Se il processo cambia la proprietà, BITS rimuove le intestazioni dal processo.

Si noti che se vengono inviate più richieste HTTP, le intestazioni vengono inviate con ogni richiesta.

Un ISAPI che elabora l'intestazione personalizzata può restituire un errore HTTP se l'intestazione non è valida. Per informazioni dettagliate sul modo in cui BITS gestisce l'errore, vedere Gestione degli errori dell'applicazione server.

Esempio

Nell'esempio seguente viene illustrato come specificare intestazioni personalizzate per un processo. L'esempio presuppone che pJob punti a un processo valido.

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

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione bits2_5.h (includere Bits.h)
Libreria Bits.lib

Vedi anche

IBackgroundCopyJobHttpOptions

IBackgroundCopyJobHttpOptions::GetCustomHeaders