|
Related Topics
Web Server API Function Index
Supported Environments
The built-in ADDRESS SWSSEND Host Command Environment
can be used in the following environments:
|
Shadow/REXX-language WWW transaction procedures. |
|
Any other Shadow/REXX procedure |
|
Other REXX-language WWW transaction procedures |
For environments where ADDRESS SWSSEND is
unavailable, use the following:
The ADDRESS SWSSEND host command environment is built-in to
Shadow/REXX and can only be used by /*WWW transaction
procedures.
It provides an interface for creating an outbound Web transaction response and has the
following advantages over the
SWSSEND built-in function:
- The syntax for writing output data is simpler to use, easier to read, and simplifies
making changes to an existing procedure.
- The execution path is shorter.
'Commands' passed to the ADDRESS SWSSEND environment are not
actually commands at all, in the normal sense. Statements passed to the interface are data
which is buffered for output to the Web client.
Top
The ADDRESS SWSSEND environment is referenced as for all
REXX-language host command environments. You may code a stand-alone statement in the form:
ADDRESS SWSSEND "data"
Or, you may pass multiple commands to the environment as:
ADDRESS SWSSEND
"data1"
"data2"
"data3"
Each 'command' passed to the ADDRESS SWSSEND environment is
examined by the interface for special control values. If the command string does not
contain a special control value, it is buffered for subsequent output to the Web client.
The following rules are applied to 'command' data passed to the ADDRESS
SWSSEND host environment.
- If the data line contains a single binary zero, it is ignored.
- If the data line contains a leading binary zero with one or more bytes following,
the leading binary zero is stripped away. The remainder of the data line is buffered for
output in binary form (the remaining data is not translated from
EBCDIC to ASCII, and a CR/LF is not output following the data).
- If the data line consists entirely of the string 'FF'X||"PURGE", the
data line is discarded and the current contents of the outbound transmission buffers are
discarded.
- Any other data line passed to the interface, including a NULL string, are
translated from EBCDIC to ASCII and a CR/LF sequence is appended to the end.
Top

After each 'command' line is passed to the ADDRESS SWSSEND
environment, the built-in REXX variable, RC, is set to indicate the success or failure of
the operation.
A return code of 0 indicates that the operation completed successfully.
Any other return code indicates a failure of the request, either due to the loss of the
communications session or an internal error.
The following illustrates the use of ADDRESS SWSSEND
in creating a text or HTML response:
ADDRESS SWSSEND
"HTTP/1.0 200 OK"
"Content-type: text/html"
""
"<HTML><BODY>"
"<H1>This is the Header</H1>"
"<P>Additional text follows..."
"</BODY></HTML>"
The following calls generate binary format data:
glength=0
DO I = 1 TO GIFDATA.0
glength = LENGTH(GIFDATA.I) + glength
END
ADDRESS SWSSEND
"HTTP/1.0 200 OK"
"Content-type: image/gif"
"Content-length: "glength
""
DO I = 1 to GIFDATA.0
'00'X||GIFDATA.I
END
The following calls purge previously buffered data and create a new transaction
response:
ADDRESS SWSSEND
purgecmd = 'FF'X||"PURGE"
purgecmd
"HTTP/1.0 304 URL Moved"
"Location: /new/url/location"
""
|