Trong ví dụ của bạn, PageMethods.DoSomething phải có giá trị trả về bằng WebRequest nếu đó là proxy dịch vụ web asp.net. Điều này được cung cấp để bạn có thể thao tác các yêu cầu sau khi bạn đã bắt đầu nó (tức là hủy bỏ nó vv).
Với lớp này, bạn có phương thức add_completed mà bạn có thể sử dụng để thêm trình xử lý khi yêu cầu web hoàn tất. Chữ ký cho cuộc gọi lại là function OnWebRequestCompleted(executor, eventArgs)
và thông số executor
cho phép bạn giữ thông tin phản hồi bổ sung. Ví dụ: bạn có thể giữ các tiêu đề phản hồi với executor.getAllResponseHeaders()
; đó phải là một bản đồ (bộ sưu tập có tên) của tên và giá trị tiêu đề. Vì vậy, nếu bạn thêm người xử lý vào sự kiện hoàn thành yêu cầu web ngay sau khi thực hiện cuộc gọi phương thức dịch vụ, nó sẽ hoạt động (không có dịch vụ web nào trên thế giới có thể phản hồi nhanh hơn hai dòng mã liên tiếp!).
Liên kết trước đó tới WebRequest chứa một ví dụ đầy đủ về cách dây này lên. Tuy nhiên, lưu ý rằng mã này sử dụng trực tiếp WebRequest.
Lớp proxy proxy dịch vụ Web Ajax Asp.Net sử dụng lớp WebServiceProxy
và mỗi phương pháp proxy cuối cùng gọi phương thức invoke
của nó, trả về phiên bản WebRequest
.
Nguồn
2010-01-10 09:42:10
Cảm ơn Chúa Zoltan. Đó là thông tin rất hữu ích! – James
vui mừng được sử dụng;) –