IIS Development

IisDev

>  Home
>  News
>  Notification Service

 

Articles

>  Code Samples
>  ASP.NET
>  Security

 

Components & Tools

>  Free Components
>  SharpDevelop
>  ComponentCenter
>  CodeLook Program

 

Service

>  Links
>  Advertising
>  Contact us

Search IISDEV:

AspTear Component - free

Last updated: 01/04/99, Initial Release


AspTear 1.50 is available as commercial component. AspTear 1.0 will be available for free forever.
Articles about AspTear
Creating an HTTP Testing Tool
Grabbing Information from other Servers
Speeding Up ASP Pages by With Caching
Grabbing Table Columns from Other Web Pages
Speed up your ASP pages: Turn Them into HTML with ASPTear

What about a simple and cheap (=totally free) component for "tearing" web pages from a server? If you have searched for such a solution, then you are right here: AspTear allows you to retrieve web pages from servers easily with a bunch of features.

Here's a list of the component's main features:

  • Supports GET and POST
  • Send query strings and POST data to the server
  • Access HTTP and HTTPS resources
  • Log in to secured sites with username/password

Basics

So how does it work? Currently, the component is really very simple as it supports only one method (server-side VBScript pseudocode given here):

Const Request_POST = 1
Const Request_GET = 2
Set xObj = Server.CreateObject("SOFTWING.AspTear")
strRetVal = xObj.Retrieve(strUrl, nRequestType, strQueryString|strPostData, _
                 strUsername, strPassword)
The file retrieved is returned as method return value (strRetVal; errors are returned with exceptions - see the samples). If you don't need to supply Username and Password, leave them empty (""). Thus, the simplest request looks like this:
strRetVal = xObj.Retrieve("http://www.alphasierrapapa.com/iisdev/",2,"","","")
Notice that I did not supply a document - the component supports redirects! Now let's get a little bit more sophisticated: POST a form to the server with form data. How is this form data formatted? It needs to have the following form,
variable1=value1&variable2=value2...
where value1 to n need to be URL-encoded. To URL-encode a string value, use Server.URLEncode (this is also mandatory for querystrings):
strPostData = "Name=" & Server.URLEncode("Christoph Wille") & _
              "&goto=" & Server.URLEncode("http://www.alphasierrapapa.com/")
The call to Retrieve now looks like this:
strRetVal = xObj.Retrieve("http://www.alphasierrapapa.com/",1,strPostData,"","")
The last thing to discuss is how to access SSL-secured items - it is as simple as replacing http:// with https:// in the strUrl parameter!

ASP Sample

In this section, there is a simple sample with two files: formpost.asp (Listing 1) which accepts a parameter and dumps it with the ALL_HTTP server variable; the second file is testretrieve.asp (see Listing 2), which uses the component to retrieve the formpost.asp file and return it to the client.

Listing 1: formpost.asp

<PRE>
<%
Response.Write Request.ServerVariables("ALL_HTTP")
%>
</PRE>
<%
Response.Write Request.Form("test")
%>

<form method=post action="">
<input type=text name="test">
<input type=submit>
</form>

Listing 2: testretrieve.asp

<%
Const Request_POST = 1
Const Request_GET = 2

Set xobj = CreateObject("SOFTWING.ASPtear")
Response.ContentType = "text/html"
    
On Error Resume Next
' URL, action, payload, username, password
strRetval = xobj.Retrieve("http://194.8.136.102/iisdev/asptear/formpost.asp", _
                 Request_POST, "test=wille", "", "")

If Err.Number <> 0 Then
    Response.Write "<b>"
    If Err.Number >= 400 Then
        Response.Write "Server returned error: " & Err.Number
    Else
        Response.Write "Component/WinInet error: " & Err.Description
    End If
    Response.Write "</b>"
    Response.End
End If

Response.Write strRetval
%>

Use It Everywhere!

Due to its design, the component can be used in any Automation client as it does not rely on the ASP intrinsic objects. The following code snippet shows the Excel module sample shipping with the component (change the URLs as needed):

Const Request_POST = 1
Const Request_GET = 2

Sub DoTestComponent()
On Error GoTo err_test_handler
    Dim xobj As Object, strRetval As String
    Set xobj = CreateObject("SOFTWING.ASPtear")
    
    ' URL, action, payload, username, password
    strRetval = xobj.Retrieve("http://194.8.136.100/formpost.asp", _
	     Request_POST, "test=wille", "", "")
    Debug.Print strRetval
    
    Exit Sub
err_test_handler:
    If Err.Number >= 400 Then
        MsgBox "Server returned error: " & Err.Number
    Else
        MsgBox "Component/WinInet error: " & Err.Description
    End If
End Sub

Installation and Download

Before using the component you have to register it using the regsvr32 utility: regsvr32 AspTear.dll.

Download (size is approx. 85KB)
The most current version number of the component is 1.0. It is compiled with Visual C++ 6.0 SP1 using MFC statically linked.

If you do have any questions, please feel free to send mail to Christoph Wille.

 

©1998-2004 Christoph Wille. All rights reserved.
All content and images on this site are copyright. Reuse (even parts) needs our written consent.