Every request is handled and tracked by a HTTP Request record.

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.

State Control

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:

Label Sequence Description
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.

*Pending

(After a failure the HTTP Request is created straight away, but remains in a ‘Pending’ state until the timer has finished.)

**Ready

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:

Field Type Description
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.

Request Fields

The following table gives a description of the Request fields that are visible on the HTTP Request record:

Field Type Description
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.

Response Fields

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:

Field Type Description
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.

Debugging

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.

Request

The Request payload (E.g. REQXXX…_request.xml, …_request.json).

Response

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>

Send request

These outbound logs are from when the Request was sent.

Receive request

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.