В ваш пример, PageMethods.DoSomething должен иметь возвращаемое значение, равное WebRequest, если это прокси-сервер asp.net. Это обеспечивается, чтобы вы могли манипулировать запросом после его запуска (т. Е. Отменить его и т. Д.).
С помощью этого класса у вас есть метод add_completed, который вы можете использовать для добавления обработчика для завершения веб-запроса. Подпись для обратного вызова - function OnWebRequestCompleted(executor, eventArgs)
, а параметр executor
позволяет получить дополнительную информацию об ответе. Например, вы можете получить заголовки ответов с помощью executor.getAllResponseHeaders()
; который должен быть картой (названной коллекцией) имен заголовков и значений.
Итак, если вы добавили обработчик к завершенному событию веб-запроса сразу после вызова метода службы, он должен работать (в мире нет веб-службы, которая может реагировать быстрее, чем две последовательные строки кода!).
Предыдущая гиперссылка на WebRequest содержит полный пример того, как это сделать. Обратите внимание, однако, что этот код напрямую использует WebRequest.
Прокси-классы Asp.Net Ajax Web-класса используют класс WebServiceProxy
, и каждый прокси-метод в конечном итоге вызывает свой метод invoke
, который возвращает экземпляр WebRequest
.
Спасибо, лорд Золтан. Это очень полезная информация! – James
рад быть полезным;) –