com.WebServiceEngine.GetHTTPServiceRequest
Get a handle for an incoming HTTP service request.
Syntax
com.WebServiceEngine.GetHTTPServiceRequest(
timeout INTEGER)
RETURNS com.HTTPServiceRequest
- timeout defines the timeout in seconds.
Usage
The com.WebServiceEngine.GetHTTPServiceRequest()
class method returns a com.HTTPServiceRequest
object to
handle an incoming HTTP request, or NULL
if there was no request during the given
period of time.
The timeout parameter defines the time in seconds to wait for an incoming
request. A value of -1 means infinite wait. When the timeout occurs, the method returns
NULL
.
In case of error, the method throws an exception and sets the
STATUS
variable. Depending on the error, a human-readable description of the
problem is available in the SQLCA.SQLERRM
register. See Error handling in GWS calls (STATUS).
Any new call to this function will raise an error until the previous HTTP request is handled by sending a response back to the client, or destroyed.
The error -15565 can be thrown if an invalid or unsupported HTTP request is sent. Supported methods are GET, PUT, POST, HEAD, and DELETE.
The error -15575 can be thrown if the GAS disconnects the Web Services program.
URLs are sent in UTF-8 on the network, if the web services server is not able to convert UTF-8 URLs back to fglrun locale charset, error -15552 will be thrown. As a general advice, run you WS server program in UTF-8.
Example
DEFINE req com.HTTPServiceRequest
...
TRY
WHILE TRUE
LET req = com.WebServiceEngine.getHTTPServiceRequest(-1)
IF req IS NULL THEN
DISPLAY "HTTP request timeout...: ", CURRENT YEAR TO FRACTION
ELSE
CALL req.sendTextResponse(200,NULL,"It works")
END IF
END WHILE
CATCH
IF status == -15575 THEN
DISPLAY "Disconnected : ",SQLCA.SQLERRM
ELSE
DISPLAY "ERROR : ",status,SQLCA.SQLERRM
END IF
END TRY
...