com.ibm.cics.server
Class HttpClientRequest

java.lang.Object
  extended by com.ibm.cics.server.HttpClientRequest

public class HttpClientRequest
extends java.lang.Object

Usage:
This class provides the Java implementation of HTTP client requests related to the following CICS API commands:

The constructor accepts METHOD and MEDIATYPE information. These values can be altered by setter methods before the send methods are used to send a client request to the server.

The setter methods allow instance variables to be set in the HttpClientRequest object. These variables relate to the following options on the CICS API command WEB SEND SESSTOKEN:

Various send methods allow a document, an application buffer, data stored in a container or a chunked request to be sent to the server.

Method writeHeader() allows the application to supply HTTP headers that will be sent with the client request.

Version:
05/05/19
Author:
Adrian Bull

Field Summary
static int NOTSET
          Constant - NOT SET
 
Constructor Summary
HttpClientRequest(java.lang.String method)
          Usage:
The METHOD is saved in the HttpClientRequest object for later use by the send methods.
HttpClientRequest(java.lang.String method, java.lang.String mediaType)
          Usage:
The METHOD and MEDIATYPE information is saved in the HttpClientRequest object for later use by the send methods.
 
Method Summary
 void send(HttpSession session)
          Usage:
Send an request without a body to the server.
 void sendChunk(HttpSession session, byte[] from)
          Usage:
Send an application buffer to the server as part of a chunked request.
 void sendChunk(HttpSession session, java.lang.String from)
          Usage:
Send an application buffer to the server as part of a chunked request.
 void sendContainer(HttpSession session, Container container)
          Usage:
Send data stored in a container to the server.
 void sendDocument(HttpSession session, Document doc)
          Usage:
Send a document to the server.
 void sendFrom(HttpSession session, byte[] from)
          Usage:
Send an application buffer to the server.
 void sendFrom(HttpSession session, java.lang.String from)
          Usage:
Send an application buffer to the server.
 void sendLastChunk(HttpSession session)
          Usage:
Indicate that the chunked request is complete.
 void setActionExpect()
          Usage:
Sets WEB SEND SESSTOKEN command option ACTION to EXPECT.
 void setAuthenticationBasic()
          Usage:
Sets WEB SEND SESSTOKEN command option AUTHENTICATE to BASIC.This method also clears any user-name or password information already set by method setAuthenticationBasic(String userName, String password).
 void setAuthenticationBasic(java.lang.String userName, java.lang.String password)
          Usage:
Sets WEB SEND SESSTOKEN command option AUTHENTICATE to BASIC and sets the WEB SEND SESSTOKEN command options USERNAME, USERNAMELEN, PASSWORD and PASSWORDLEN.
 void setAuthenticationNone()
          Usage:
Sets WEB SEND SESSTOKEN command option AUTHENTICATE to NONE.
 void setCharacterset(java.lang.String characterset)
          Usage:
Sets WEB SEND SESSTOKEN command option CHARACTERSET.
 void setClientConvert()
          Usage:
Sets WEB SEND SESSTOKEN command option CLIENTCONV to CLICONVERT.
 void setClose()
          Usage:
Sets WEB SEND SESSTOKEN command option CLOSESTATUS to CLOSE.
 void setDocDelete()
          Usage:
Sets WEB SEND SESSTOKEN command option DOCSTATUS to DOCDELETE.
 void setMediaType(java.lang.String mediaType)
          Usage:
Sets WEB SEND SESSTOKEN command option MEDIATYPE.
 void setMethodDelete()
          Usage:
Sets WEB SEND SESSTOKEN command option METHOD to DELETE.
 void setMethodGet()
          Usage:
Sets WEB SEND SESSTOKEN command option METHOD to GET.
 void setMethodHead()
          Usage:
Sets WEB SEND SESSTOKEN command option METHOD to HEAD.
 void setMethodOptions()
          Usage:
Sets WEB SEND SESSTOKEN command option METHOD to OPTIONS.
 void setMethodPost()
          Usage:
Sets WEB SEND SESSTOKEN command option METHOD to POST.
 void setMethodPut()
          Usage:
Sets WEB SEND SESSTOKEN command option METHOD to PUT.
 void setMethodTrace()
          Usage:
Sets WEB SEND SESSTOKEN command option METHOD to TRACE.
 void setNoClientConvert()
          Usage:
Sets WEB SEND SESSTOKEN command option CLIENTCONV to NOCLICONVERT.
 void setNoClose()
          Usage:
Sets WEB SEND SESSTOKEN command option CLOSESTATUS to NOCLOSE.
 void setNoDocDelete()
          Usage:
Sets WEB SEND SESSTOKEN command option DOCSTATUS to NODOCDELETE.
 void setPath(java.lang.String path)
          Usage:
Sets WEB SEND SESSTOKEN command option PATH.
 void setQueryString(java.lang.String queryString)
          Usage:
Sets WEB SEND SESSTOKEN command option QUERYSTRING.
 void setUrimap(java.lang.String urimap)
          Usage:
Sets WEB SEND SESSTOKEN command option URIMAP.
 void writeHeader(HttpSession session, java.lang.String header, java.lang.String value)
          Usage:
Add HTTP header information to the request This is equivalent to CICS API command WEB WRITE SESSTOKEN.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NOTSET

public static final int NOTSET
Constant - NOT SET

See Also:
Constant Field Values
Constructor Detail

HttpClientRequest

public HttpClientRequest(java.lang.String method)
Usage:
The METHOD is saved in the HttpClientRequest object for later use by the send methods. Valid methods are "POST", "GET", "HEAD", "PUT", "TRACE", "OPTIONS" and "DELETE". If the method is not one of these or the mediaType is invalid the error is not detected until one of the send methods is used to send the client request to the server.

Parameters:
method - is the METHOD to be used by the WEB SEND SESSTOKEN command

HttpClientRequest

public HttpClientRequest(java.lang.String method,
                         java.lang.String mediaType)
Usage:
The METHOD and MEDIATYPE information is saved in the HttpClientRequest object for later use by the send methods. Valid methods are "POST", "GET", "HEAD", "PUT", "TRACE", "OPTIONS" and "DELETE". If the method is not one of these or the mediaType is invalid the error is not detected until one of the send methods is used to send the client request to the server.

Parameters:
method - is the METHOD to be used by the WEB SEND SESSTOKEN command
mediaType - is the MEDIATYPE value to be used by the WEB SEND SESSTOKEN command
Method Detail

setMethodPost

public void setMethodPost()
Usage:
Sets WEB SEND SESSTOKEN command option METHOD to POST.


setMethodGet

public void setMethodGet()
Usage:
Sets WEB SEND SESSTOKEN command option METHOD to GET.


setMethodHead

public void setMethodHead()
Usage:
Sets WEB SEND SESSTOKEN command option METHOD to HEAD.


setMethodPut

public void setMethodPut()
Usage:
Sets WEB SEND SESSTOKEN command option METHOD to PUT.


setMethodTrace

public void setMethodTrace()
Usage:
Sets WEB SEND SESSTOKEN command option METHOD to TRACE.


setMethodOptions

public void setMethodOptions()
Usage:
Sets WEB SEND SESSTOKEN command option METHOD to OPTIONS.


setMethodDelete

public void setMethodDelete()
Usage:
Sets WEB SEND SESSTOKEN command option METHOD to DELETE.


setCharacterset

public void setCharacterset(java.lang.String characterset)
Usage:
Sets WEB SEND SESSTOKEN command option CHARACTERSET. This method also sets CLIENTCONV to CLICONVERT.

Parameters:
characterset - is the CHARACTERSET value to be used by the WEB SEND SESSTOKEN command

setClose

public void setClose()
Usage:
Sets WEB SEND SESSTOKEN command option CLOSESTATUS to CLOSE.


setNoClose

public void setNoClose()
Usage:
Sets WEB SEND SESSTOKEN command option CLOSESTATUS to NOCLOSE.


setActionExpect

public void setActionExpect()
Usage:
Sets WEB SEND SESSTOKEN command option ACTION to EXPECT.


setMediaType

public void setMediaType(java.lang.String mediaType)
Usage:
Sets WEB SEND SESSTOKEN command option MEDIATYPE.

Parameters:
mediaType - contains MEDIATYPE information to be used by the WEB SEND SESSTOKEN command

setPath

public void setPath(java.lang.String path)
Usage:
Sets WEB SEND SESSTOKEN command option PATH.

Parameters:
path - contains PATH information to be used by the WEB SEND SESSTOKEN command

setUrimap

public void setUrimap(java.lang.String urimap)
Usage:
Sets WEB SEND SESSTOKEN command option URIMAP.

Parameters:
urimap - contains the URIMAP name to be used by the WEB SEND SESSTOKEN command

setClientConvert

public void setClientConvert()
Usage:
Sets WEB SEND SESSTOKEN command option CLIENTCONV to CLICONVERT.


setNoClientConvert

public void setNoClientConvert()
Usage:
Sets WEB SEND SESSTOKEN command option CLIENTCONV to NOCLICONVERT. This method also clears CHARACTERSET information set by method setCharacterset().


setQueryString

public void setQueryString(java.lang.String queryString)
Usage:
Sets WEB SEND SESSTOKEN command option QUERYSTRING.

Parameters:
queryString - contains QUERYSTRING information to be used by the WEB SEND SESSTOKEN command

setDocDelete

public void setDocDelete()
Usage:
Sets WEB SEND SESSTOKEN command option DOCSTATUS to DOCDELETE.


setNoDocDelete

public void setNoDocDelete()
Usage:
Sets WEB SEND SESSTOKEN command option DOCSTATUS to NODOCDELETE.


setAuthenticationNone

public void setAuthenticationNone()
Usage:
Sets WEB SEND SESSTOKEN command option AUTHENTICATE to NONE. This method also clears any user-name or password information already set by method setAuthenticationBasic(String userName, String password).


setAuthenticationBasic

public void setAuthenticationBasic()
Usage:
Sets WEB SEND SESSTOKEN command option AUTHENTICATE to BASIC.This method also clears any user-name or password information already set by method setAuthenticationBasic(String userName, String password). This causes CICS global exit XWBAUTH to be driven to provide the user-name and password information when the WEB SEND SESSTOKEN command is issued by one of the send methods.


setAuthenticationBasic

public void setAuthenticationBasic(java.lang.String userName,
                                   java.lang.String password)
Usage:
Sets WEB SEND SESSTOKEN command option AUTHENTICATE to BASIC and sets the WEB SEND SESSTOKEN command options USERNAME, USERNAMELEN, PASSWORD and PASSWORDLEN.

Parameters:
userName - contains the basic authentication user-name.
password - contains the basic authentication password.

sendDocument

public void sendDocument(HttpSession session,
                         Document doc)
                  throws InvalidRequestException,
                         RecordNotFoundException,
                         IOErrorException,
                         NotAuthorisedException,
                         LengthErrorException,
                         NotOpenException,
                         TokenErrorException,
                         ContainerErrorException,
                         ChannelErrorException
Usage:
Send a document to the server. This is equivalent to CICS API command WEB SEND SESSTOKEN DOCUMENT. The required command options should have been saved in the HttpClientRequest object before this method is used to send the client request to the server.

Parameters:
session - is the HttpSession object associated with the request to be sent
doc - is the Document object to be sent to the server
Throws:
InvalidRequestException - a INVREQ condition occurred
RecordNotFoundException - a NOTFND condition occurred
IOErrorException - a IOERR condition occurred
NotAuthorisedException - a NOTAUTH condition occurred
LengthErrorException - a LENGERR condition occurred
NotOpenException - a NOTOPEN condition occurred
TokenErrorException - a TOKENERR condition occurred
ContainerErrorException - a CONTAINERERR condition occurred
ChannelErrorException - a CHANNELERR condition occurred

sendFrom

public void sendFrom(HttpSession session,
                     java.lang.String from)
              throws InvalidRequestException,
                     RecordNotFoundException,
                     IOErrorException,
                     NotAuthorisedException,
                     LengthErrorException,
                     NotOpenException,
                     TokenErrorException,
                     ContainerErrorException,
                     ChannelErrorException
Usage:
Send an application buffer to the server. This is equivalent to CICS API command WEB SEND SESSTOKEN FROM. The required command options should have been saved in the HttpClientRequest object before this method is used to send the client request to the server.

Parameters:
session - is the HttpSession object associated with the request to be sent
from - is the data to be sent to the server
Throws:
InvalidRequestException - a INVREQ condition occurred
RecordNotFoundException - a NOTFND condition occurred
IOErrorException - a IOERR condition occurred
NotAuthorisedException - a NOTAUTH condition occurred
LengthErrorException - a LENGERR condition occurred
NotOpenException - a NOTOPEN condition occurred
TokenErrorException - a TOKENERR condition occurred
ContainerErrorException - a CONTAINERERR condition occurred
ChannelErrorException - a CHANNELERR condition occurred

sendFrom

public void sendFrom(HttpSession session,
                     byte[] from)
              throws InvalidRequestException,
                     RecordNotFoundException,
                     IOErrorException,
                     NotAuthorisedException,
                     LengthErrorException,
                     NotOpenException,
                     TokenErrorException,
                     ContainerErrorException,
                     ChannelErrorException
Usage:
Send an application buffer to the server. This is equivalent to CICS API command WEB SEND SESSTOKEN FROM. The required command options should have been saved in the HttpClientRequest object before this method is used to send the client request to the server.

Parameters:
session - is the HttpSession object associated with the request to be sent
from - is the data to be sent to the server
Throws:
InvalidRequestException - a INVREQ condition occurred
RecordNotFoundException - a NOTFND condition occurred
IOErrorException - a IOERR condition occurred
NotAuthorisedException - a NOTAUTH condition occurred
LengthErrorException - a LENGERR condition occurred
NotOpenException - a NOTOPEN condition occurred
TokenErrorException - a TOKENERR condition occurred
ContainerErrorException - a CONTAINERERR condition occurred
ChannelErrorException - a CHANNELERR condition occurred

sendContainer

public void sendContainer(HttpSession session,
                          Container container)
                   throws InvalidRequestException,
                          RecordNotFoundException,
                          IOErrorException,
                          NotAuthorisedException,
                          LengthErrorException,
                          NotOpenException,
                          TokenErrorException,
                          ContainerErrorException,
                          ChannelErrorException
Usage:
Send data stored in a container to the server. This is equivalent to CICS API command WEB SEND SESSTOKEN CONTAINER. The required command options should have been saved in the HttpClientRequest object before this method is used to send the client request to the server.

Parameters:
session - is the HttpSession object associated with the request to be sent
container - is the container that holds the data to be sent to the server
Throws:
InvalidRequestException - a INVREQ condition occurred
RecordNotFoundException - a NOTFND condition occurred
IOErrorException - a IOERR condition occurred
NotAuthorisedException - a NOTAUTH condition occurred
LengthErrorException - a LENGERR condition occurred
NotOpenException - a NOTOPEN condition occurred
TokenErrorException - a TOKENERR condition occurred
ContainerErrorException - a CONTAINERERR condition occurred
ChannelErrorException - a CHANNELERR condition occurred

send

public void send(HttpSession session)
          throws InvalidRequestException,
                 RecordNotFoundException,
                 IOErrorException,
                 NotAuthorisedException,
                 LengthErrorException,
                 NotOpenException,
                 TokenErrorException,
                 ContainerErrorException,
                 ChannelErrorException
Usage:
Send an request without a body to the server. This is equivalent to CICS API command WEB SEND SESSTOKEN. The required command options should have been saved in the HttpClientRequest object before this method is used to send the client request to the server.

Parameters:
session - is the HttpSession object associated with the request to be sent
Throws:
InvalidRequestException - a INVREQ condition occurred
RecordNotFoundException - a NOTFND condition occurred
IOErrorException - a IOERR condition occurred
NotAuthorisedException - a NOTAUTH condition occurred
LengthErrorException - a LENGERR condition occurred
NotOpenException - a NOTOPEN condition occurred
TokenErrorException - a TOKENERR condition occurred
ContainerErrorException - a CONTAINERERR condition occurred
ChannelErrorException - a CHANNELERR condition occurred

sendChunk

public void sendChunk(HttpSession session,
                      java.lang.String from)
               throws InvalidRequestException,
                      RecordNotFoundException,
                      IOErrorException,
                      NotAuthorisedException,
                      LengthErrorException,
                      NotOpenException,
                      TokenErrorException,
                      ContainerErrorException,
                      ChannelErrorException
Usage:
Send an application buffer to the server as part of a chunked request. This is equivalent to CICS API command WEB SEND SESSTOKEN FROM CHUNKYES. The required command options should have been saved in the HttpClientRequest object before this method is used to send the client request to the server. Once the first chunk has been sent the instance variables set in the HttpClientRequest object by the setter methods are reset

Parameters:
session - is the HttpSession object associated with the request to be sent
from - is the data to be sent to the server
Throws:
InvalidRequestException - a INVREQ condition occurred
RecordNotFoundException - a NOTFND condition occurred
IOErrorException - a IOERR condition occurred
NotAuthorisedException - a NOTAUTH condition occurred
LengthErrorException - a LENGERR condition occurred
NotOpenException - a NOTOPEN condition occurred
TokenErrorException - a TOKENERR condition occurred
ContainerErrorException - a CONTAINERERR condition occurred
ChannelErrorException - a CHANNELERR condition occurred

sendChunk

public void sendChunk(HttpSession session,
                      byte[] from)
               throws InvalidRequestException,
                      RecordNotFoundException,
                      IOErrorException,
                      NotAuthorisedException,
                      LengthErrorException,
                      NotOpenException,
                      TokenErrorException,
                      ContainerErrorException,
                      ChannelErrorException
Usage:
Send an application buffer to the server as part of a chunked request. This is equivalent to CICS API command WEB SEND SESSTOKEN FROM CHUNKYES. The required command options should have been saved in the HttpClientRequest object before this method is used to send the client request to the server. Once the first chunk has been sent the instance variables set in the HttpClientRequest object by the setter methods are reset.

Parameters:
session - is the HttpSession object associated with the request to be sent
from - is the data to be sent to the server
Throws:
InvalidRequestException - a INVREQ condition occurred
RecordNotFoundException - a NOTFND condition occurred
IOErrorException - a IOERR condition occurred
NotAuthorisedException - a NOTAUTH condition occurred
LengthErrorException - a LENGERR condition occurred
NotOpenException - a NOTOPEN condition occurred
TokenErrorException - a TOKENERR condition occurred
ContainerErrorException - a CONTAINERERR condition occurred
ChannelErrorException - a CHANNELERR condition occurred

sendLastChunk

public void sendLastChunk(HttpSession session)
                   throws InvalidRequestException,
                          RecordNotFoundException,
                          IOErrorException,
                          NotAuthorisedException,
                          LengthErrorException,
                          NotOpenException,
                          TokenErrorException,
                          ContainerErrorException,
                          ChannelErrorException
Usage:
Indicate that the chunked request is complete. This is equivalent to CICS API command WEB SEND SESSTOKEN CHUNKEND.

Parameters:
session - is the HttpSession object associated with the request to be sent
Throws:
InvalidRequestException - a INVREQ condition occurred
RecordNotFoundException - a NOTFND condition occurred
IOErrorException - a IOERR condition occurred
NotAuthorisedException - a NOTAUTH condition occurred
LengthErrorException - a LENGERR condition occurred
NotOpenException - a NOTOPEN condition occurred
TokenErrorException - a TOKENERR condition occurred
ContainerErrorException - a CONTAINERERR condition occurred
ChannelErrorException - a CHANNELERR condition occurred

writeHeader

public void writeHeader(HttpSession session,
                        java.lang.String header,
                        java.lang.String value)
                 throws InvalidRequestException,
                        NotOpenException
Usage:
Add HTTP header information to the request This is equivalent to CICS API command WEB WRITE SESSTOKEN.

Parameters:
session - is the HttpSession object associated with the request to be sent
header - contains the name of the HTTP header
value - contains the value of the named header
Throws:
InvalidRequestException - a INVREQ condition occurred
NotOpenException - a NOTOPEN condition occurred