Skip to main content

Advanced REST Client

Description

Advanced REST Client calls RESTful web services from within a workflow, extending the standard REST Client step with additional capabilities such as authenticated proxy support, SSL certificate validation bypass, request timeouts, form-data uploads, GraphQL queries, and the ability to read HTTP response headers. Use this step when your automation needs to interact with external APIs — for example, submitting data to a cloud service, retrieving records from a web application, or triggering a remote process. It supports all standard HTTP methods and lets you test API connectivity directly from the configuration dialog.

Limitations
  • Process Studio variables, parameters, and field names must never be same as the Parameter Key, irrespective of case (upper case or lower case).

  • Apache HttpClient URL Validation Rule for Invalid Percent Sequences: Apache HttpClient strictly validates URLs according to RFC 3986 (Uniform Resource Identifier) specification.
    Rule: A percent-encoded character must follow the pattern %XX where XX are exactly two hexadecimal digits (0-9, A-F, a-f).
    Valid hex digits: 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
    URL: https://dev354764.service-now.com/api/now/table/incident?sysparm_query=short_descriptionLIKEReport%Success@2025 #Final$

    In above URL, there a sequence “%Su”

    Problem with %Success:

    • The sequence %Su is parsed as an attempted percent-encoding.
    • S and u are NOT valid hexadecimal digits.
    • Apache HttpClient throws URISyntaxException: Illegal character or validation error

    Example:

    InputValid?Reason
    %20Yes2 and 0 are hex digits (represents space)
    %2FYes2 and F are hex digits (represents /)
    %SuccessNoS is not a hex digit
    %25SuccessYes%25 decodes to %, result is %Success

    Reference: RFC 3986, Section 2.1 - Percent-Encoding A percent-encoded octet is encoded as a character triplet, consisting of the percent character "%" followed by the two hexadecimal digits representing that octet's numeric value.

Configurations

Field NameDescription
Step nameSpecify the name of the step as it appears in the workflow workspace. This name has to be unique in a single workflow.
HTTP MethodSpecify the HTTP method with which the step will interact with a resource. Available HTTP methods are: GET, PUT, DELETE, POST, HEAD, OPTIONS, or PATCH.
URLSpecify the path to a REST client resource (HTTP URL).
Settings Tab:Enter basic connection information for accessing a resource.
General:
Request timeout in secondsThe time to establish the connection with the remote host.
SSL Configuration:Provide authentication details for accessing a resource that requires SSL certificate authentication.
Ignore SSL certificate verificationEnable this checkbox to ignore SSL certificate verification while making HTTPS connection.

(This strategy ignores trust store certificate checking, making it insecure and only to be used where it makes sense!!)

Trust store fileSpecify trust store file path in case of HTTPS connection.
BrowseClick Browse button to select trust store file from local machine.
Trust store passwordSpecify trust store password in case of HTTPS connection
Key store fileSpecify the key store file path (in PKCS#12 format after you’ve combined your certificate and private key)
It contains your client’s certificate and private key.
Key store file is used for mutual TLS authentication to prove the client’s identity to the server.
Please note that this is an optional field.
BrowseClick Browse to select key store file from local machine.
Key store passwordSpecify key store password.
Please note that this is an optional field.
Proxy Configuration:
Use System ProxyEnable checkbox to allow REST client to use the Process Studio's default proxy configurations. In case of AE agent, it will use agent's proxy configurations.
Proxy TypeSelect Proxy server type (HTTP/HTTPS)
Proxy HostSpecify the name/IP of a proxy host, if proxy authentication is required
Proxy PortSpecify the port number of a proxy host, if proxy authentication is required
Proxy UsernameIn case of authenticated proxy server, provide username
Proxy PasswordIn case of authenticated proxy server, provide password
Proxy Exceptions (Non- Proxy Hosts)Specify the Proxy Exceptions, that is, non-proxy hosts.

The Proxy Exceptions (Non-Proxy Hosts) can hold semicolon- separated hostnames, IP addresses, and domain names that must not be accessed through the proxy server. When a client requests access to a resource, the proxy server checks the hostname or IP address against the semicolon separated non- proxy hosts. If there is a match, the proxy server forwards the request directly to the target server without going through the proxy.

For example, if the Proxy Exceptions (Non-Proxy Hosts) set to "localhost;127.0.0.1;*.mydomain.com", then requests to the localhost, 127.0.0.1 and any server under the mydomain.com domain will be accessed directly without going through the proxy server.

It will be considered when the “Use System Proxy” checkbox is unchecked and proxy details (at least Proxy Host and Proxy Port) are provided into the plugin.

Parameters Tab:This tab contains table with three columns to provide request (URL) parameters
Parameter KeySpecify the Request parameter keys to set value.
Parameter ValueSpecify the Request parameter keys values.
DescriptionSpecify a description for the parameter.
Authorization Tab:Enter authorization details for a resource in the Authorization tab.
HTTP Authorization:
TypeSelect Request Authentication (No Authentication, Basic Authentication, Bearer Token, and OAuth 2.0).
UsernameIn case of Basic Authentication provide username
PasswordIn case of Basic Authentication provide password
Headers(0) Tab:This tab contains table with four columns to provide request headers
Header KeySpecify request header key
Header ValueSpecify request header value
Header Value FieldDefine the content of any HTTP headers using an existing field. Populate the list of fields by clicking the Get fields button.
DescriptionSpecify a description for header
Request Body Tab:Request Body tab has a group of radio buttons as follows:
Request Body:
noneIn case where request does not have a request body
rawSpecify raw Request Body as Text, HTML, XML, JSON or XML. You could insert fields in the raw body from the navigator by double clicking the field. Else, use template support in request body to substitute fields and environment variables/parameters in appropriate placeholders (?{fieldname}, ${environment variable}).
form-dataEnter Request body in tabular format in a form. Use form-data to send non-ASCII text or large binary data.
x-www-form-urlencodedEnter Request body in tabular format in a form. Use x-www- form-urlencoded to send simple text/ASCII data.
read from fileIn case where request body to be read from a file.
read from fieldIn case where request body text to be read from a field.
binaryIn case where request body is to be read from a file.
GraphQL (Beta)Specify GraphQL to execute the GraphQL query schema. Query: Specify a GraphQL query to read or fetch values or a mutation to write or post values.

E.g. Query:

{

students

{

id

fullName

}

}

GraphQL Variables: GraphQL variables help to factor dynamic values out of the query and pass them as a separate dictionary.

You could insert fields in the Query and GraphQL Variables from the navigator by double-clicking the field. Else, use template support in the request body to substitute fields and environment variables/parameters in appropriate placeholders (?{fieldname}, ${environment variable}).

Note: Please make sure, when substituting (field or environment variable) a string value we have to explicitly enclose that value in double quotes ("").

Limitation: Subscription query are not supported by ARC GraphQL.

Form-data:This tab contains table with five columns:
Key TypeSelect form-data parameter key type (Text/File) from the dropdown list.
KeySpecify form-data parameter key.
ValueSpecify form-data parameter value.
Value FieldSelect a field containing form-data parameter.
DescriptionSpecify a description for form-data parameter String.
x-www-form-urlencoded:This tab contains table with three columns:
KeySpecify a parameter key.
ValueSpecify a parameter value.
DescriptionSpecify a description for parameter.
Read from file:This tab contains table with five columns:
Content type for request bodySelect content-type for request body dropdown.
File PathSpecify request body file path.
View Request Body ContentsClick this button to view request body file contents
Read from field:This tab contains table with five columns:
Content type for request bodySelect content-type for request body from dropdown
Field nameSpecify request body raw text to be read from a field.
HTTP Response Tab:This tab has Output fields.
Response StatusSpecify the output field to hold the HTTP Response status (e.g 200 OK). The default field name is ArcRespStatus.
Response Time (milliseconds)Specify the output field to hold the HTTP Response time in milliseconds. The default field name is ArcRespTime.
Response Headers (JSON)Specify the output field to hold the HTTP Response headers in the JSON format. The default field name is ArcResponseHeaders.
Response Cookies (JSON)Specify field name to set HTTP Response Cookies in JSON format. The default field name is ArcRespCookies.
Response BodySpecify the output field to hold the HTTP Response body text if any. The default field name is ArcRespBody.
Output FileSpecify the output field to hold the file path for file received in the HTTP Response. The default field name is ArcRespOutputFile.
Add File to ResultCheck this option to add HTTP Response output file to workflow result.