User Tools

Site Tools


web_requests_via_http.htm
Navigation:  Language Extensions (ClaRunExt.dll) >Web Requests via HTTP Previous pageReturn to chapter overviewNext page

HTTPWebRequest / HTTPWebRequestToFile

Overview

There are four (4) easy to use PROCEDUREs provided in ClaRunExt.dll to make it simple for you to make web requests using HTTP or HTTPS. You can send web requests (and receive responses) to Web Servers, REST Web Services, or standard Web Services, with the most commonly used HTTP verbs; POST, GET, PUT, and DELETE. These verbs (or methods) correspond to Create, Read, Update, and Delete (or CRUD) operations, respectively.

Implementation:

Requirements:

Coding

after the MAP section add the line:

INCLUDE('ClaRunExt.INC'),ONCE

create an instance of the class:

HttpReq  ClaRunExtClass

define variables for the parameters, for example:

httpWebAddress    CSTRING(512)          ! the address to send the webRequest

httpVerbMethod    BYTE                ! the HTTP method used in the webRequest, it can be HttpVerb:GET, POST, PUT, DELETE

postData          CSTRING(1024)        ! data passed to the webRequest when using the POST verb

requestParameters CSTRING(512)        ! parameters passed to the the webRequest appended to the http address after the ?

responseOut       CSTRING(64000)        ! the buffer to be filled with the response

filetoStore       CSTRING(512)        ! holds the name of the file to store the response

These are pre-defined EQUATES (ClaRunExt.inc):

HttpVerb:GET          EQUATE(0)

HttpVerb:POST         EQUATE(1)

HttpVerb:PUT          EQUATE(2)

HttpVerb:DELETE       EQUATE(3)

Runtime

Distribute ClaRunExt.dll (requires .Net 3.5 or higher be installed on target machine)

Example Usage:

See .\Examples\ClaTalk\HttpRequest\WebRequest.cwproj

Function descriptions

There are two main PROCEDURE variations; HttpWebRequest(-) and HttpWebRequestToFile(-).

Both of the PROCEDUREs have an override which accepts some additional parameters.

For HttpWebRequest() the shared parameters are:

<;param name=“httpWebAddress”> the address to send the webRequest<;/param>

<;param name=“httpVerbMethod”> the verb method used in the webRequest, it can be HttpVerb:GET, POST, PUT, DELETE<;/param>

<;param name=“postData”> data passed to the webRequest when using the POST verb<;/param>

<;param name=“requestParameters”> parameters passed to the the webRequest appended to the http address after the ?<;/param>

<;param name=“responseOut”> the buffer to be filled with the response, the buffer needs to be big enough to contain the response value<;/param>

in the override variant there are these two added parameters:

<;param name=“contentType”> the request content type, default is “text/xml”<;/param>

<;param name=“headers”> a string containing the headers and values separated by pipes name1|value|name2|value2<;/param>

Both PROCEDUREs have the same RETURN:

<;returns> Zero if the request was successful, if the buffer is not big enough the return value will be the numeric value of the required buffer size. If the value is negative an exception occurred, and the description of the exception is in the responseOut<;/returns>

For HttpWebRequestToFile() the shared parameters are:

<;param name=“httpWebAddress”> the HTTP address to send the webRequest<;/param>

<;param name=“httpVerbMethod”> the verb method used in the webRequest, it can be HttpVerb:GET, POST, PUT, DELETE<;/param>

<;param name=“postData”> data passed to the webRequest when using the POST verb<;/param>

<;param name=“requestParameters”> the parameters passed to the the webRequest appended to the HTTP address after the ?<;/param>

<;param name=“errorOut”> the text of the error message if an error occurred<;/param>

<;param name=“outputFilename”> the name of the file to store the response in <;/param>

in the override variant there are these two added parameters:

<;param name=“contentType”> the request content type, defaults to “text/xml”<;/param>

<;param name=“headers> a string containing the headers and values separated by pipes name1|value|name2|value2<;/param>

Both PROCEDUREs have the same RETURN:

<;returns> Zero if the request was successful, if the buffer is not big enough the return value will be the numeric value of the required buffer size. If the value is negative an exception occurred, and the description of the exception is in the responseOut<;/returns>

Examples:

WebRequest project (WebRequest.sln)

Located in Examples\Clatalk\HttpRequest

This example shows the use of all variations of HttpWebRequest and HttpWebRequestToFile.  It allows you to interactively experiment with all

four HTTP methods; POST, GET, PUT, and DELETE. You specify the server URI, parameters and the HTTP method, and the result (response from the server) is displayed in a Text control, or written to a File.

flickrClient project (flickrClient.sln)

Located in Examples\Clatalk\flickr

This example uses the flickr Http API to make an HTTPRequest for a “feed” of public images. It then parses the requested XML response into a Queue, and displays the Image associated with the current selection in the LIST control.

see also:

HttpWebRequest

HttpWebRequestToFile

web_requests_via_http.htm.txt · Last modified: 2021/04/15 15:57 (external edit)