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

Especifica um ou mais cabeçalhos HTTP personalizados a serem incluídos em solicitações HTTP.

Sintaxe

HRESULT SetCustomHeaders(
  [in] LPCWSTR RequestHeaders
);

Parâmetros

[in] RequestHeaders

Cadeia de caracteres terminada em nulo que contém os cabeçalhos personalizados a serem acrescentados à solicitação HTTP. Cada cabeçalho deve ser encerrado por um caractere cr/LF (retorno de carro e alimentação de linha). A cadeia de caracteres é limitada a 16.384 caracteres, incluindo o terminador nulo.

Para remover os cabeçalhos personalizados do trabalho, defina o parâmetro RequestHeaders como NULL.

Retornar valor

A tabela a seguir lista alguns dos valores retornados possíveis.

Código de retorno Descrição
S_OK
Êxito.
BG_E_STRING_TOO_LONG
O comprimento dos cabeçalhos personalizados é superior a 16 KB.
BG_E_INVALID_STATE
O estado do trabalho não pode ser BG_JOB_STATE_CANCELLED ou BG_JOB_STATE_ACKNOWLEDGED.

Comentários

Os cabeçalhos personalizados são aplicáveis somente a arquivos remotos que usam o protocolo HTTP ou HTTPS. Você pode especificar cabeçalhos personalizados para todos os tipos de trabalho.

Somente o proprietário do trabalho pode especificar cabeçalhos personalizados. Se o trabalho alterar a propriedade, o BITS removerá os cabeçalhos do trabalho.

Observe que, se várias solicitações HTTP forem enviadas, os cabeçalhos serão enviados com cada solicitação.

Um ISAPI que processa o cabeçalho personalizado poderá retornar um erro HTTP se o cabeçalho não for válido. Para obter detalhes sobre como o BITS lida com o erro, consulte Tratamento de erros de aplicativo do servidor.

Exemplos

O exemplo a seguir mostra como especificar cabeçalhos personalizados para um trabalho. O exemplo pressupõe que pJob aponta para um trabalho 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 Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho bits2_5.h (inclua Bits.h)
Biblioteca Bits.lib

Confira também

IBackgroundCopyJobHttpOptions

IBackgroundCopyJobHttpOptions::GetCustomHeaders