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