Call a Web Service Asynchronously
One advantage of calling a web service directly, rather than through proxies, is that it is very easy to handle the response asynchronously. The DOMDocument object provides an ondataavailable event that occurs when the object is finished loading XML from a source. This means that you can launch a web service request, release control to the user, and display results when a request is complete. Being able to handle a response asynchronously is especially important when the web service is returning a large amount of data.
To use the DOMDocument object to respond to a web service asynchronously, follow these steps:
Declare a
DOMDocumentobject at the module of a class. The class can be a workbook, worksheet, or code class module. For example, the following variable is declared in thewsAmazonworksheet class:Dim WithEvents xdoc As DOMDocument
Select the
xdocobject from the object list at the top of the code window, and then selectondataavailablefrom the event list to create an empty event procedure as shown here:Private Sub xdoc_ondataavailable( ) End SubIn other code, initialize the
xdocobject, set itsasyncproperty to True, and then call the web service using thexdocobject’sLoadmethod. For example, the following event procedure searches Amazon.com for a keyword when the user clicks the Get Titles button on the wsAmazon worksheet:Sub cmdTitles_Click( ) Dim SearchUrl As String ' Create a new DOMDocument and set its options Set xdoc = New ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access