com.HttpServiceRequest.sendXmlResponse
Sends an HTTP response with data from a XML document object.
Syntax
sendXmlResponse(
code INTEGER,
desc STRING,
doc xml.DomDocument )
- code specifies the status code of the response.
- description specifies the description of the response.
- doc specifies the XML document containing the data to be sent.
Usage
The sendXmlResponse()
method performs the HTTP response by sending a status
(code) and description (desc), followed by the headers
previously set, and the XML data contained in the passed xml.DomDocument
object as body.
code
returned ​can be a value between 100 and 999. You can send
any code in this range. This provides support for the status codes returned by HTTP, WebDAV, other
Request for Comments (RFC) codes, etc. The following determines how the desc
is
handled:- If the code you send is recognized (as one of the standards) and the description is
NULL
, the description corresponding to the code standard is sent to the client. - If the code is not recognized, the description you provide is added. If you do not provide a description, the default description "No Message" is sent to the client.
It is important for the server to return a status code, following the HTTP standards, otherwise the client may fail to interpret the response. For instance, if the request is malformed, the server is expected to send an HTTP response with the code of 400 (Bad Request).
The default Content-Type header is text/xml
, but it can be changed if of the
form */xml
or */*+xml
. For example:
application/xhtml+xml
.
In HTTP 1.1, if the body size is greater than 32k, the response will be sent in several chunks of the same size.
New incoming requests can be retrieved again with the com.WebServiceEngine.GetHTTPServiceRequest()
method.
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).
The int_flag variable is checked during GWS API call to handle program interruptions, for more details, see Interruption handling in GWS calls (int_flag)