Метод Sys.Net.XmlHttpExecutor executeRequest

Выполняет веб-запрос как указано в соответствующем экземпляре WebRequest.

MyExecutor.executeRequest;

Исключения

Тип исключения

Атрибут Condition

Sys.InvalidOperationException

Метод executeRequest был вызван повторно после начала запроса.

– или –

Исполнитель не связан с экземпляром класса WebRequest.

Заметки

Для выполнения веб-запроса не требуется прямой вызов метода executeRequest. Вместо этого следует вызвать метод WebRequest.invoke или WebRequestManager.executeRequest. Метод executeRequest предназначен для расширения в будущем или для использования с настраиваемыми исполнителями.

Примечание

При прямом вызове метода executeRequest исполнителя экземпляр WebRequestManager не будет управлять веб-запросом.Поэтому обработчики, добавленные путем вызова метода add_completedRequest или add_invokingRequest класса WebRequestManager , вызваны не будут.

При вызове метода executeRequest исполнитель создает и отправляет HTTP-запрос с помощью команды HTTP, заголовков HTTP и текста запроса, указанных для соответствующего экземпляра WebRequest. Исполнитель отправляет HTTP-запрос с помощью объекта обозревателя XMLHTTP. Дополнительные сведения см. О собственном XMLHTTP.

Если заголовок Content-Type соответствующего объекта запроса не задан, исполнитель устанавливает application/x-www-form-urlencoded для HTTP-запроса POST, которое является значением по умолчанию. Если не задан текст запроса, а он необходим для обозревателя, исполнитель автоматически присваивает тексту значение пустой строки (""). После этого действия обозреватель отправит заголовок Content-Length. Исполнитель обеспечивает надлежащий вызов обработчика завершенных событий для веб-запросов.

После вызова executeRequest исполнитель может находиться в одном из следующих состояний.

  • Запущен. После успешной отправки исполнителем вызова в объект XMLHTTP обозревателя, свойству XmlHttpExecutor.started задается значение true. Активное состояние исполнителя сохраняется на протяжении времени жизни объекта.

  • Завершен. При успешном выполнении вызова XMLHTTP свойству XmlHttpExecutor.started и XmlHttpExecutor.responseAvailable задается значение true.

    Сетевой запрос считается завершенным, если объект обозревателя XMLHTTP возвращает элемент управления обработчику внутреннего завершения исполнителя. Однако код состояния, текст состояния или текст ответа могут указывать на возникновение ошибки во время запроса. Проверка ответных данных и определение, являются ли возвращенные данные допустимыми, зависит от вызывающего кода. Например, проверка этих сведений и определение наличия ошибки при вызове службы связаны с элементом, обрабатывающем веб-службы.

  • Тайм-аут. Если соответствующему запросу было задано значение времени ожидания отличное от нуля и это время истекает, а другое событие завершения не возникает, исполнитель переходит в состояние тайм-аута. Это значит, что сетевой вызов не был своевременно завершен, и действие исполнителя прервано не было. Свойствам started и timedOut экземпляра исполнителя задано значение true.

    Примечание

    Если значение времени ожидания запроса было равным нулю и произошел тайм-аут запроса XMLHTTP, исполнитель переходит в состояние "Завершен".Затем он вызывает завершенное событие объекта запроса.Это значит, что свойства started и responseAvailable экземпляра исполнителя возвращают значение true.Вызывающий код должен выполнить проверку кода состояния исполнителя, чтобы убедиться в доступности допустимых данных даже при завершенном запросе.

Если обработчики событий отсутствуют, то исполнитель, переходящий в состояние завершения ("Завершен" или "Тайм-аут"), выполняет внутреннюю очистку и возврат.

Примечание

Если свойству started задано значение true, многократное выполнение вызова executeRequest будет невозможно.Однако если после вызова метода executeRequest объект XMLHTTP создает исключение, можно попытаться устранить проблему, а затем вызвать метод executeRequest еще раз.

Пример

В следующем примере показано выполнение веб-запроса с помощью функции executeRequest Данный пример кода является частью полного примера, приведенного в описании класса Sys.Net.XmlHttpExecutor.

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

См. также

Ссылки

Класс Sys.Net.WebRequestManager

Класс Sys.Net.WebRequestExecutor

Класс Sys.Net.XMLHttpExecutor

Другие ресурсы

About Native XMLHTTP