Compartilhar via


Sys.Net.XmlHttpExecutor executeRequest método

Executa uma solicitação da Web conforme especificado no associado WebRequest instância.

MyExecutor.executeRequest;

Exceções

Tipo de exceção

Condição

Sys.InvalidOperationException

The executeRequest método foi chamado novamente após a solicitação de inicialização.

- ou -

O executor não está associado a uma instância do WebRequest classe.

Comentários

Para tornar uma solicitação da Web, você não chama o executeRequest método diretamente. Em vez disso, você telefonar o WebRequest.invoke método ou a WebRequestManager.executeRequest método. The executeRequest método destina-se para expansão futura ou para uso com executores personalizados.

ObservaçãoObservação:

Se você telefonar do executor executeRequest método diretamente, a WebRequestManager instância não gerenciará a solicitação da Web. Portanto, quaisquer manipuladores que são adicionados ao chamar o add_completedRequest or add_invokingRequest métodos de do WebRequestManager não são chamados de classe.

Quando você telefonar o executeRequest método, o executor constrói e envia uma solicitação HTTP usando o verbo HTTP, cabeçalhos HTTP e corpo de solicitação especificado para o associado WebRequest instância. O executor envia a solicitação HTTP por meio XMLHTTP objeto. Para obter mais informações, consulte Sobre a XMLHTTP nativo.

Se o Content-Type cabeçalho de objeto de solicitação associada não está conjunto, o executor conjunto s para application/x-www-form-urlencoded para uma solicitação POST HTTP, que é a padrão conjunto seletiva. Se o corpo da solicitação não for conjunto e um corpo de solicitação é necessária pelo navegador, o executor automaticamente conjunto s corpo como uma seqüência de caracteres vazia (""). Isso força o navegador para enviar um Content-Length cabeçalho. O executor certifica-se de que o manipulador de eventos concluído da solicitação da Web é chamado conforme necessário.

Depois de executeRequest é chamado, o executor pode estar em um dos seguintes estados:

  • Iniciado. Depois que o executor enviou com êxito a telefonar para o XMLHTTP objeto no navegador, o XmlHttpExecutor.started propriedade é conjunto para true. Quando um executor estiver ativo, ele permanece isso durante a tempo de vida da instância.

  • Conclua. Se o XMLHTTP telefonar tiver êxito, o XmlHttpExecutor.started e XmlHttpExecutor.responseAvailable propriedades são conjunto para true.

    Uma solicitação de rede é considerada concluída se XMLHTTP objeto devolve o controle para o manipulador de conclusão interno do executor. No entanto, o código de status, texto de status ou texto de resposta pode indicar que ocorreu um erro durante a solicitação. Ele é o código de chamada para inspecionar as informações de resposta e determinar se a solicitação retornou dados válido. Por exemplo, é responsabilidade do elemento que lida com os serviços da Web para verificar essas informações e para determinar se ocorreu um erro quando o serviço foi chamado.

  • Esgotado. Se a solicitação associada tinha um valor de time limite diferente de zero e o time limite expirar sem outro evento de conclusão ocorrendo, o executor define seu estado como time limite. Isso indica que a telefonar de rede não foi concluída no time e que o executor não foi anulado. started e timedOut propriedades são conjunto para true.

    ObservaçãoObservação:

    Se a solicitação 's time - saída foi conjunto para zero e o XMLHTTP tempo limite da solicitação, o executor define o estado concluído. Em seguida, ele gera o evento concluído do objeto de solicitação. Isso significa que o started e responseAvailable Propriedades da instância executor retornar true. É responsabilidade do código de chamada para inspecionar o código de status do executor para verificar se os dados válido estão disponível, mesmo se a solicitação concluída.

Se nenhum evento manipuladores existirem, quando o executor atinge um estado de conclusão (completo ou atingiu o tempo limite), ele executa limpezas internas e retorna silenciosamente.

ObservaçãoObservação:

Y não é possível ou telefonar executeRequest Depois de várias vezes a started propriedade estiver definida como true. No entanto, se o XMLHTTP objeto lança uma exceção depois que ele telefonar s a executeRequest método, você pode tentar corrigir o problema e, em seguida telefonar executeRequest novamente.

Exemplo

O exemplo a seguir mostra como fazer uma solicitação da Web usando o executeRequest função. Este código faz parte de um exemplo completo encontrado no Sys.Net.XmlHttpExecutor visão geral da classe.

// This function executes a Web request.
function ExecuteWebRequest()
{
    // Create the WebRequest object.
    wRequest =  new Sys.Net.WebRequest();

    // Set the request Url.  
    wRequest.set_url("getTarget.htm");


    // Set the Completed event handler, for processing return data
    wRequest.add_completed(OnCompleted);

      // Clear the results area.
    resultElementId.innerHTML = "";

    // To use executeRequest you must instantiate the
    // executor, assign it to the Web request instance,
    // then call the executeRequest function.
    // Note: Normally to make a Web request you use
    // the invoke method of the WebRequest instance.
    var executor = new Sys.Net.XMLHttpExecutor();
    wRequest.set_executor(executor); 
    executor.executeRequest();

    var started = executor.get_started();

    alert("Executor started: " + started);
}

Consulte também

Referência

Classe Sys.Net.WebRequestManager

Classe de sys.NET.WebRequestExecutor

Classe Sys.Net.XMLHttpExecutor

Outros recursos

Sobre XMLHTTP Nativo.