[Web.Query:]UPDATED
Executes any valid HTTP query.
This macro is partially execute-restricted. Details in the Usage / Parameters section. See Connection Role Security and / or Restricted Macros.
Macro Compatibility
The macro can be used in all input document types and in Report Studio.
Usage
This macro cannot be run using Post, Put, Patch, or Delete methods unless the Schedule is locked by an Admin. Your Admin will need to set this up. This also means that in Report Studio, only Admins can use these methods.When storing the HTTP headers in a response as variables (such as with 'storeHeadersAs=headers'), and subsequently using a String macro to output the variable, it is recommended to use quotes around the variable in the String macro's value parameter, e.g. [String:value={headers}]. This is because date-related HTTP headers may contain commas (i.e. Fri, 02 Oct 2020 11:13:25 GMT), which is interpreted by the String macro as the end of the parameter (in this case you only see 'Fri' as the output), and may prevent other header values from appearing in the output. Quotes around the value can prevent this, such as: [String:value="{headers}"]. Note also that you may set the Base URL in a Web Connection (if used) to shorten HTTP calls, i.e. the 'url' parameter can then just be used to set the relative URL. See the Connections help page for more information.
What's New
(2025-04-18)Now supports the 'CustomAuthHeaderName' and 'CustomAuthHeaderValueExpression' configuration parameters on the Web Connection. See the Web Connection help for more details.
Parameter | Type | Presence | Purpose | Options | Default |
---|---|---|---|---|---|
String | Optional | The HTTP body to send. It is sent as raw, but you have several sub-choices with the 'bodyFormat' parameter. | N/A | N/A | |
HttpBodyFormat | Optional | The HTTP body format to send. |
|
Text | |
String | Optional | Post processing formula. Use {value} for the macro output, e.g. {value}/1024. | N/A | N/A | |
Boolean | Optional | Whether to color table cells if thresholds are breached, rather than color the text. |
|
true | |
String | Optional | Add a comment to make your document template more readable. The comment is discarded in the output document. | N/A | N/A | |
String | Optional | The name of the Web Connection to use. This is optional because Web macros may not require a Connection at all, but it can be used to set additional options such as authorisation types and more. | N/A | N/A | |
Boolean | Optional | Should NCalc expression evaluation throw error on Overflow |
|
true | |
String | Optional | The text to display should the macro fail to execute. Note that a poorly-specified macro (e.g. omitting mandatory parameters) will still result in an error message. | N/A | N/A | |
Color | Optional | The font background color to use. |
|
N/A | |
Boolean | Optional | Change the font weight (true=strong, false=normal). If omitted, no change is made. |
|
N/A | |
Color | Optional | The font color to use. |
|
N/A | |
Double | Optional | Change the font size in points. If omitted, no change is made. |
|
N/A | |
String | Optional | The formatting to use for numbers. You can also specify 'format=string' to force numbers to be treated as strings. | N/A | N/A | |
List<String> | Optional | The HTTP headers to send. They should be specified using this format: header1=value1;header2=value2,... You may also use any alternative to '=' to split header name and value, e.g. if the value itself might contain '=' (for example a Cookie header name with value JSESSION ID=123456789), then the input can instead be delimited by another character such as: headerValueDelimiter=^, headers=Cookie^JSESSION ID=123456789,... | N/A | N/A | |
Char | Optional | The character used to split the header names and values in the 'headers' parameter. | N/A | = | |
Boolean | Optional | Whether to hide the macro output. |
|
false | |
String | Optional | The condition that must be true in order for the macro to be executed/evaluated. Must either evaluate to true or false, for example: "3+5=8" or "contains('abcd', 'z'). | N/A | true | |
HttpRequestMethod | Optional | The HTTP method to use. Post, Put, Patch, and Delete require a Schedule that is locked by an Admin to run. Your Tenant Admin will need to set this up. This also means that in Report Studio, only Admins can use these methods. |
|
Get | |
MacroMode | Optional | The mode in which variables are stored. In the legacy mode (default for Schedules), the variable created is a string and formatted. In the normal mode (default for Report Studio), the output variable is stored as a strongly-typed object, e.g. an Int32 or a List |
|
Legacy | |
ObfuscationType | Optional | Obfuscation type. Use obfuscation to write reports where sensitive data is hidden. When used, ReportMagic guarantees that the same input string will map to the same output string for the whole of the report (but the next time the report runs, it will most likely map to a different value). If you use obfuscation, the property in your macro will not show up and instead, you will see a fake item of the obfuscation type chosen. |
|
None | |
Normal mode |
Boolean | Optional | Any macros that output lists can optionally (in Normal mode) output a jArray instead. |
|
true |
Boolean | Optional | Whether substituted variables are hidden from macro results (and the word 'REDACTED' will appear in progress screens and elsewhere in the web UI). |
|
false | |
SystemAccess.ResponseObjectType | Optional | The expected type of the HTTP response. |
|
Auto | |
Normal mode |
Boolean | Optional | In Normal Mode and for macros that output JArrays only, whether to convert a JArray of single-property jObjects into a flat JArray of values. |
|
false |
String | Optional | The variable to store the result as. | N/A | N/A | |
String | Optional | The variable to store the result as, while hiding the output. Equivalent to 'storeAs=ThisValue, hidden=true'. | N/A | N/A | |
Char | Optional | The delimiter used by storeAs to split the input (Legacy mode only), when there are multiple stored variables. For example, in this macro, we indicate that the value to be stored should be split by the asterisk when being stored: [String:value=a*b*c*d, storeAs=var1;var2;var3;var4, storeAsVariableDelimiter=*] | N/A | ; | |
String | Optional | The name of the STRING variable to store the result as and output (both will use the same format) into the report. Note that if you also use 'storeAsHidden' in the same macro, you should not expect the output to be hidden, as this parameter overrides that. | N/A | N/A | |
String | Optional | Create a report variable in which to store the HTTP response headers. The variable will contain the headers using this format: header1=value1;header2=value2,... | N/A | N/A | |
String | Optional | Create a report variable in which to store the HTTP status code and reason phrase (if present). The variable is stored using the format: 123:REASON PHRASE (e.g. 200:OK). If no reason phrase is provided, it will read 'NO REASON PHRASE FOUND'. | N/A | N/A | |
Int32 | Optional | The time in milliseconds for which to wait for a response. |
|
100000 | |
String | Optional | The URL. This is an absolute URL unless you use a Web Connection and set its BaseUrl property, in which case this acts a relative URL, and may be empty. | N/A | N/A | |
String | Optional | If specified, adds a warning message for this macro. This is processed as an NCalc, and the warning message will ALWAYS be present and will be the value of the evaluated NCalc expression. | N/A | N/A |
Examples (2)
Example 1:
[Web.Query:url="http://www.website.com", method=Post, headers=clientSecret=a;clientToken=b, body=<json>{ "a" : "a" }</json>, bodyFormat=Json, timeoutMs=120000, storeHeadersAs=headers, storeHttpStatusAs=httpStatus]
Example 2:
This example shows how to use the 'headerValueDelimiter' parameter to change the delimiter between the header names and values:
[Web.Query:url="http://api.test.testsite.net/odata/people(154)", method=Get, headerValueDelimiter=`*`, headers="Header1*value1;Header2*value2;Header3*JSESSION ID=123456", storeHttpStatusAs=HttpStatus, storeAsHidden=Content]