HTTP Request records are created every time an HTTP Request is generated for sending to or receiving from an external system. They contain all the low-level data about the individual request; the headers, the payload, the URL, timings, etc.
These records are extremely useful for developing and debugging integrations because of the immediate availability and contextual relevance to the integration you are developing. You will often find that it is easier to debug an integration from within Unifi than it is from any external system.
The Request will be inserted in a ‘Ready’ state. Unifi will then asynchronously pick it up and process it. The following table defines the
state field value choices:
|Pending*||0||The HTTP Request is waiting to be processed asynchronously, but in a retry scenario it is waiting for the synchronous timeout specified on the Integration.|
|Ready**||1||The HTTP Request is ready to be processed outbound.|
|OK||1||There are no errors with the HTTP Request.|
|Error||3||There was an error with the HTTP Request.|
|Cancelled||4||The HTTP Request was cancelled.|
(After a failure the HTTP Request is created straight away, but remains in a ‘Pending’ state until the timer has finished.)
Inbound HTTP Requests are currently processed synchronously and therefore will only ever be ‘OK’ or ‘Error’.
HTTP Request Fields
The following table gives a description of the fields that are visible on the HTTP Request record:
|Number||String||The unique HTTP Request identifier.|
|Integration||Reference||The integration this record belongs to.|
|Connection||Reference||The connection this request will use.|
|Transaction||Reference||The transaction this record belongs to.|
|Message||Reference||The message used to process this record.|
|Direction||Choice||The direction this record is travelling in.|
|Request state||Choice||The state of the request.|
|Attempt number||Integer||The number of HTTP Request attempts. Failed requests are retried up to the maximum attempts number as configured on the Integration.|
|Source type||String||The Source type that created this request.|
The following table gives a description of the Request fields that are visible on the HTTP Request record:
|Endpoint URL||URL||The external system’s access URL.|
|Action method||String||The SOAP Action or the REST Method to use for this request.|
|Request headers||String||A JSON object containing the headers sent with this request.|
|Request payload||String||The payload of the request being sent or received.|
|Time||Glide date time||The time this request was processed.|
|Size (bytes)||Integer||The size in bytes of the request payload.|
|Mid server||Reference||The MID server used to send this request.|
It is often far quicker and easier to tell what has been sent from the integrated system by looking at the values in the Response fields in Unifi than it is to get the same information from the system that has sent it.
The following table gives a description of the Response fields that are visible on the HTTP Request record:
|Status code||String||The response status code.|
|Time to send||Integer||The time taken in milliseconds to receive a response.|
|Status text||String||The HTTP status text.|
|Response headers||String||A JSON object containing the headers sent in response to this request.|
|Response payload||String||The payload of the response being sent or received.|
As previously stated, Unifi places the logs exactly where they’re needed - on the record! Not only that, both the Request & Response payloads are also attached using the browser’s pretty print format which makes it far easier to view & read what has both been sent and received as well as to debug.
The Request payload (E.g. REQXXX…_request.xml, …_request.json).
The Response payload (E.g. REQXXX…_request.xml, …_request.json). The following is an example of the Response payload attachment:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <AcknowledgeDelivery xmlns:eb="https://thewhitespace.io/applications/unifi/"> <Status/> <Description>OK</Description> </AcknowledgeDelivery> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
These outbound logs are from when the Request was sent.
Although not displayed in the image above, in the case of inbound Requests these inbound logs would be available.
Repeat Request (UI Action)
This will be used when testing/debugging. For example, if the Request errors you may want to edit the payload & then repeat the Request to check if the error clears.