WebResourceProvider VB.NET style






4.50/5 (2 votes)
Jun 11, 2002
3 min read

83478

263
Ravi Bhavnani's WebResourceProvider ported to the .NET Framework
Introduction
First of all I have to thank Ravi Bhavnani for his excellent WebResourceProvider article.
I just took the opportunity to translate the code into VB.NET and tried to use as much .NET Framework functionality as possible.
Please refer to Ravi Bhavnani's article for more in-depth information about the idea of WebResourceProviders.
The source code provided with this article is a Visual Studio .NET project
with the base class WebResourceProvider
and a demo application
including two derived classes:
- stock quotes
- the translation of a piece of text (which uses also a POST request)
How it Works
You use WebResourceProvider
by deriving your own resource
provider class from it, and overriding any of these virtual methods:
Init
ConstructUrl
IsPost()
GetPostData()
ParseContent()
MoreAvailable()
WebResourceProvider
provides an assortment of methods to help
parse downloaded content. They are:
Method | Purpose | |
At |
Checks whether current location is at a string | |
AtExact |
Case sensitive version of at() | |
SkipTo |
Advances current location to next occurence of a string | |
SkipToExact |
Case sensitive version of SkipTo() | |
SkipBackTo |
Advances current location to previous occurence of a string | |
SkipBackToExact |
Case sensitive version of SkipBackTo() | |
ExtractTo |
Extracts text from current location to the start of a string | |
ExtractToExact |
Case sensitive version of ExtractTo() | |
ExtractToEnd |
Extracts text from current location to end of content | |
GetIndex |
Returns current location | |
GetLinks |
Returns HREF and IMG links in content | |
ResetIndex |
Sets current location to start of content | |
ResetIndex |
Sets current location to start of content | |
StoreIndex |
Stores current location | |
RestoreIndex |
Restores the prevoiusly stored location | |
RemoveComments |
Removes comments from content | |
RemoveScripts |
Removes scripts from content | |
RemoveEnclosingAnchorTag |
Removes anchor tag enclosing a string | |
RemoveEnclosingQuotes |
Removes quotes enclosing a string | |
RemoveHtml |
Removes HTML from a string | |
Trim |
Removes leading and trailing whitespace from a string | |
ReplaceSpecialChars |
Replace special HTML characters like ampersand, umlaut, etc. to its character representation |
Sample Resource Providers
There are two sample resource providers in the source code:
The QuoteProvider
class works by posting a request to Yahoo's basic stock quote
form and parsing the returned information.
The TranslationProvider
class works by posting a request to Google's
translation engine and parsing the returned information. The request
includes the translation mode. The sample performs a reverse translation and
presents it along with the original text for comparison purposes.
Using WebResourceProvider
To use WebResourceProvider
do the following:
- Start building any VB.NET project in Visual Studio .NET
- Add
WebResourceProvider.vb
to your project - Create a new class which inherits from
WebResourceProvider
- Override the
ConstructUrl()
method in your derived class. This method specifies the URL to be downloaded. - Override the
ParseContent()
method in your derived class. This method extracts information from the downloaded content and stores it in the derived class' member variables. - Optionally override other
WebResourceProvider
virtual methods. See the source code of the sample resource providers included in the demo project for examples. - Run and debug your code from within Visual Studio .NET
Acknowledgement
WebResourceProvider
uses the following code written by
others:
- WebResourceProvider (in C++) by Ravi Bhavnani
- Case-Insensitive String Replace by Uwe Keim
Revision History
- 11 June 2002 Initial version of article.
- 27 August 2002 Some bugs fixed, added functions (SkipBackTo, SkipBackToExact, StoreIndex, RestoreIndex, ReplaceSpecialChars)