contentsconceptssyntaxlibrariessampleserrorsindex
Full text search
HTTP library sample: a simple client  
 

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.



Sample

  ;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)) 

   
----  

Top [CONTENTS] [CONCEPTS] [SYNTAX] [LIBRARIES] [SAMPLES] [ERRORS] [INDEX]

Generated: April 21, 1999 at 2:01:42 pm
If you have any comments about this section of the documentation, send email to [email protected]

Copyright © OmniMark Technologies Corporation, 1988-1999.