|
Introduction
This sample program illustrates a common use of the HTTP library on the client side. It will connect to a given web page (in this case, the OmniMark website's home page) and scan the page for a given pattern ("OmniMark").
The HttpRequestSend
function will handle all aspects of the connection, including error handling.
;Copyright 1999 OmniMark Technologies Corporation. All rights reserved. ; ;This is a simple HTTP client written using the HTTP library. ;It will call the OmniMark Technologies web page, scan the contents ;for the word "OmniMark", and count the number of times it occurs. ; ;Command line: omnimark -s -of "ocount.txt" ;Declaring the function libraries: ;The HTTP library depends on the I/O Protocol library and the ;TCP/IP library, and both of these must be included in the order ;they appear here. ;Name and location of the I/O Protocol library file declare function-library "omioprot" ;I/O Protocol function and constant declarations include "omioprot.xin" ;Name and location of the TCP/IP library file declare function-library "omtcp" ;TCP/IP function and constant declarations include "omtcp.xin" ;HTTP function and constant declarations include "omhttp.xin" ;scansite is the variable of the source. Any valid URL will do. global stream scansite variable initial {"http://www.omnimark.com"} ;hitcount is the number of times the sought pattern is matched global counter hitcount initial {0} ;defining the function define counter function escan (value stream url) as ;local variables within the function ;Request is the HttpRequest that will be built. Response is the ;contents of the page that will be sent from the server. local HttpRequest Request local HttpResponse Response ;Creating the request that will call the web page. HttpRequestSetFromURL Request from (url) HttpRequestSend Request into Response ;If the website is reached, scan the web page for "OmniMark". do when not(HttpObjectIsInError Request) repeat scan Response key ('entity-body') match "OmniMark" increment hitcount match any again ;If the website cannot be contacted. else output "%n Unable to connect to website %n" done return hitcount ;Program body process output "The Number of times the word OmniMark appears " || "d" % (escan (scansite))
---- |