added sysprog entities
This commit is contained in:
260
SYSPROG/STPROCINS/RTI_HTTP_DOWNLOAD_EQUATES.txt
Normal file
260
SYSPROG/STPROCINS/RTI_HTTP_DOWNLOAD_EQUATES.txt
Normal file
@ -0,0 +1,260 @@
|
||||
compile insert rti_HTTP_Download_Equates
|
||||
/*
|
||||
** Copyright (C) 2013-2019 Revelation Software Inc. All Rights Reserved **
|
||||
|
||||
Author : Mr C
|
||||
Date : June 2019
|
||||
Purpose : Equates for use with the RTI_HTTP_DOWNLOAD stored procedure
|
||||
|
||||
Parameters
|
||||
==========
|
||||
|
||||
uiParams - [required] This is an @fm delimited array of UI info for the
|
||||
download process:
|
||||
|
||||
<1> Parent Window [optional]
|
||||
|
||||
ID of the parent window for the download dialog. If not
|
||||
specified the caller must provide a CallBackID to receive
|
||||
the returned response content.
|
||||
|
||||
<2> Modal Flag [optional].
|
||||
|
||||
If TRUE$ then the parent window will be disabled for
|
||||
the duration of the download.
|
||||
|
||||
<3> EndDialogAsyncID [optional/required **]
|
||||
|
||||
Callback token for the download to return to the parent
|
||||
window's ENDDIALOG event as the AsyncID parameter.
|
||||
|
||||
<4> CallbackProc [optional/required **]
|
||||
|
||||
Name of a stored procedure to call with the response data
|
||||
if "EndDialogAsyncID" is not specified. The Callback
|
||||
proc must support the following interface:
|
||||
|
||||
proc( callbackID, responseContent )
|
||||
|
||||
<5> CallbackID [optional, required for CallbackProc]
|
||||
|
||||
If a CallBackProc is specified this field contains a
|
||||
token returned to the CallBackProc with the response
|
||||
content. See "Callback details" below for more info.
|
||||
|
||||
<6> Loading text [optional]
|
||||
|
||||
Contains text to display in the dialog - defaults to
|
||||
the URL
|
||||
|
||||
<7> Show Progress in Taskbar [optional]
|
||||
|
||||
If TRUE$ then sync the progress bar to the parent
|
||||
window's task bar icon. Defaults to FALSE$.
|
||||
|
||||
<8> Hide UI [optional]
|
||||
|
||||
If TRUE$ then don't show the progress dialog.
|
||||
|
||||
|
||||
** Note: If you don't specify EndDialogAsyncID or
|
||||
CallbackProc in uiParams you will not be notified
|
||||
of the result of the download.
|
||||
|
||||
|
||||
url - [required] Contains the URL to download from
|
||||
|
||||
method - [optional] HTTP verb (GET,POST,HEAD,DELETE etc). Defaults
|
||||
to "GET
|
||||
|
||||
payload - [optional] Content to send to the server as part of the
|
||||
request
|
||||
|
||||
credentials - [optional] Username and password to send to the server
|
||||
|
||||
<1> Username
|
||||
<2> Password>
|
||||
|
||||
headers - [optional] - Dynamic array of request headers to send to
|
||||
the server in the format:
|
||||
|
||||
<1> @vm'd list of header names
|
||||
<2> @vm'd list of header values
|
||||
|
||||
timeoutInfo - [optional] Timeout in milliseconds.
|
||||
|
||||
responseFile- [optional] Name of a file to download the response
|
||||
content to
|
||||
|
||||
|
||||
Returns
|
||||
=======
|
||||
|
||||
TRUE$ if the download was started sucessfully, or FALSE$ otherwise.
|
||||
Error information is returned via Get/Set_Status().
|
||||
|
||||
|
||||
|
||||
Comments
|
||||
========
|
||||
|
||||
This function is designed to mimic the existing OLE_GETWEBPAGE stored proc
|
||||
and provide an example of how to use the HTTPCLIENT control to provide
|
||||
a UI for a download. As such the arguments passed have been kept to the
|
||||
same format as much as possible.
|
||||
|
||||
Changes from OLE_GETWEBPAGE are:
|
||||
|
||||
1) "uiParams" has been added so we can specify UI information.
|
||||
|
||||
2) "timeoutInfo" only supports a single value - the HTTPCLIENT control
|
||||
does not have separate timeout parameters for different states
|
||||
|
||||
3) "responseBody" has been removed - the actual response content is
|
||||
returned directly via the parent window's ENDDIALOG event or the
|
||||
specified callback proc, unless a responseFile name was specified,
|
||||
in which case the contents are writtent there instead.
|
||||
|
||||
4) This routine returns a simple boolean value. There is no
|
||||
"ResponseText" property as such, and because this is asynchronous
|
||||
the actual response content is returned directly via the parent
|
||||
window's ENDDIALOG event or the specified callback proc.
|
||||
|
||||
|
||||
Amended Date Reason
|
||||
======= ==== ======
|
||||
|
||||
*/
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef _RTI_HTTP_DOWNLOAD_EQUATES_
|
||||
#define _RTI_HTTP_DOWNLOAD_EQUATES_
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
declare function rti_HTTP_Download
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/*
|
||||
Example for using with the ENDDIALOG event on a parent window:
|
||||
|
||||
|
||||
url = "https://www.revelation.com"
|
||||
method = "GET"
|
||||
|
||||
// AsyncID is just a string you set that is passed back with the response
|
||||
// so that you can recognize it easily in the ENDDIALOG event. it can
|
||||
// be anything you wish - for example we're just using the URL along
|
||||
// with a "$HTTPRESPONSE:" prefix here.
|
||||
|
||||
asyncID = "$HTTPRESPONSE:: "url"
|
||||
|
||||
uiParams = ""
|
||||
uiParams<HDL_UIPARAM_POS_PARENTWIN$> = @window
|
||||
uiParams<HDL_UIPARAM_POS_MODAL$> = TRUE$
|
||||
uiParams<HDL_UIPARAM_POS_ENDDIALOGASYNCID$> = asyncID
|
||||
uiParams<HDL_UIPARAM_POS_DOWNLOADTEXT$> = "Getting Rev homepage"
|
||||
uiParams<HDL_UIPARAM_POS_SYNCPROGRESS$> = TRUE$
|
||||
|
||||
call rti_HTTP_Download( uiParams, url, method )
|
||||
|
||||
|
||||
Example for using a stored procedure callback - in this case
|
||||
|
||||
url = "https://www.revelation.com"
|
||||
method = "GET"
|
||||
|
||||
// CallBackID is just a string you set that is passed back with the
|
||||
// response so that you can recognize it easily in the ENDDIALOG event.
|
||||
// It canbe anything you wish - for example we're just using the URL
|
||||
// along with a "$HTTPRESPONSE:" prefix here:
|
||||
|
||||
callBackID = "$HTTPRESPONSE:: "url"
|
||||
|
||||
uiParams = ""
|
||||
uiParams<HDL_UIPARAM_POS_PARENTWIN$> = @window
|
||||
uiParams<HDL_UIPARAM_POS_MODAL$> = TRUE$
|
||||
uiParams<HDL_UIPARAM_POS_CALLBACKPROC$> = "MY_HTTP_RESPONSE_HANDLER"
|
||||
uiParams<HDL_UIPARAM_POS_CALLBACKID$> = callBackID
|
||||
uiParams<HDL_UIPARAM_POS_DOWNLOADTEXT$> = "Getting Rev homepage"
|
||||
uiParams<HDL_UIPARAM_POS_SYNCPROGRESS$> = TRUE$
|
||||
|
||||
call rti_HTTP_Download( uiParams, url, method )
|
||||
*/
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// uiParams constants
|
||||
//
|
||||
// <1> ParentWin
|
||||
// <2> Modal Flag
|
||||
// <3> EndDialogAsyncID
|
||||
// <4> CallbackProc
|
||||
// <5> CallbackID
|
||||
// <6> Download Text
|
||||
// <7> SyncProgress
|
||||
// <8> Hide UI
|
||||
|
||||
equ HDL_UIPARAM_POS_PARENTWIN$ to 1
|
||||
equ HDL_UIPARAM_POS_MODAL$ to 2
|
||||
equ HDL_UIPARAM_POS_ENDDIALOGASYNCID$ to 3
|
||||
equ HDL_UIPARAM_POS_CALLBACKPROC$ to 4
|
||||
equ HDL_UIPARAM_POS_CALLBACKID$ to 5
|
||||
equ HDL_UIPARAM_POS_DOWNLOADTEXT$ to 6
|
||||
equ HDL_UIPARAM_POS_SYNCPROGRESS$ to 7
|
||||
equ HDL_UIPARAM_POS_HIDEUI$ to 8
|
||||
|
||||
// credentials constants
|
||||
|
||||
equ HDL_CRED_POS_USERNAME$ to 1
|
||||
equ HDL_CRED_POS_PASSWORD$ to 2
|
||||
|
||||
// headers constants
|
||||
|
||||
equ HDL_HDR_POS_NAMES$ to 1
|
||||
equ HDL_HDR_POS_VALUES$ to 2
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Callback details
|
||||
// =================
|
||||
//
|
||||
// When the download dialog calls back to the target event or proc it
|
||||
// passes two items of infomation:
|
||||
//
|
||||
// 1) The response content
|
||||
// 2) An array of response information:
|
||||
//
|
||||
// <1> AsyncID or CallBackID
|
||||
// <2> Response Status Code
|
||||
// <3> Response Status Text
|
||||
// <4> Content Length
|
||||
// <5> Response Headers
|
||||
// <6> Bytes Received
|
||||
//
|
||||
//
|
||||
// If calling back to the ENDDIALOG event the response content is passed
|
||||
// in the "dialogValue" parameter, and the response info is passed in the
|
||||
// "asyncID" parameter
|
||||
//
|
||||
// call post_Event( parentID, "ENDDIALOG", @window, responseContent, responseInfo )
|
||||
//
|
||||
// If calling back to a stored procedure the responseInfo is passed as the
|
||||
// first parameter, and the responseContent as the second:
|
||||
//
|
||||
// call @procID( responseInfo, responseContent )
|
||||
|
||||
equ HDL_RSPINFO_POS_ID$ to 1
|
||||
equ HDL_RSPINFO_POS_STATUSCODE$ to 2
|
||||
equ HDL_RSPINFO_POS_STATUSTEXT$ to 3
|
||||
equ HDL_RSPINFO_POS_CONTENTLEN$ to 4
|
||||
equ HDL_RSPINFO_POS_HEADERS$ to 5
|
||||
equ HDL_RSPINFO_POS_BYTESRECEIVED$ to 6
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#endif
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
Reference in New Issue
Block a user