Compartir a través de


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

Especifica uno o varios encabezados HTTP personalizados que se van a incluir en las solicitudes HTTP.

Sintaxis

HRESULT SetCustomHeaders(
  [in] LPCWSTR RequestHeaders
);

Parámetros

[in] RequestHeaders

Cadena terminada en NULL que contiene los encabezados personalizados que se van a anexar a la solicitud HTTP. Cada encabezado debe terminar con un carácter de retorno de carro y avance de línea (CR/LF). La cadena está limitada a 16 384 caracteres, incluido el terminador nulo.

Para quitar los encabezados personalizados del trabajo, establezca el parámetro RequestHeaders en NULL.

Valor devuelto

En la tabla siguiente se enumeran algunos de los posibles valores devueltos.

Código devuelto Descripción
S_OK
Correcto.
BG_E_STRING_TOO_LONG
La longitud de los encabezados personalizados es superior a 16 KB.
BG_E_INVALID_STATE
El estado del trabajo no puede ser BG_JOB_STATE_CANCELLED ni BG_JOB_STATE_ACKNOWLEDGED.

Comentarios

Los encabezados personalizados solo son aplicables a los archivos remotos que usan el protocolo HTTP o HTTPS. Puede especificar encabezados personalizados para todos los tipos de trabajo.

Solo el propietario del trabajo puede especificar encabezados personalizados. Si el trabajo cambia de propiedad, BITS quita los encabezados del trabajo.

Tenga en cuenta que si se envían varias solicitudes HTTP, los encabezados se envían con cada solicitud.

Una ISAPI que procesa el encabezado personalizado puede devolver un error HTTP si el encabezado no es válido. Para obtener más información sobre cómo BITS controla el error, consulte Control de errores de aplicación del servidor.

Ejemplos

En el ejemplo siguiente se muestra cómo especificar encabezados personalizados para un trabajo. En el ejemplo se supone que pJob apunta a un trabajo válido.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado bits2_5.h (incluir Bits.h)
Library Bits.lib

Consulte también

IBackgroundCopyJobHttpOptions

IBackgroundCopyJobHttpOptions::GetCustomHeaders