Skip to main content

Split arrays in URL

Defines the representation of arrays in URL parameters: as a whole JSON array or separate parameters for each element

Function SplitArraysInURL(Val Flag, Val SquareBrackets = Undefined) Export

ParameterCLI optionTypeRequiredDescription
Flag--splitBooleanFlag for dividing the array into individual URL parameters
SquareBrackets--phpBooleanAdd PHP style empty brackets to keys (key[]=value) if Flag = True

Returns: DataProcessorObject.OPI_HTTPClient - This processor object


tip

By default, arrays are interpreted as a single parameter with JSON array in value

By default, square brackets to parameter keys are not set when array splitting is performed


1C:Enterprise/OneScript code example
    URL = "https://httpbin.org";
URL = URL + "/get";

ArrayParam = New Array;
ArrayParam.Add("val1");
ArrayParam.Add("val2");
ArrayParam.Add("val3");

ParametersStructure = New Structure("arrayfield", ArrayParam);

Separation = OPI_HTTPRequests.NewRequest()
.Initialize("https://example.com/page")
.SetURLParams(ParametersStructure)
.SplitArraysInURL(True) // <---
.ProcessRequest("GET", False)
.ReturnRequest()
.ResourceAddress;

SeparationPhp = OPI_HTTPRequests.NewRequest()
.Initialize("https://example.com/page")
.SetURLParams(ParametersStructure)
.SplitArraysInURL(True, True) // <---
.ProcessRequest("GET", False)
.ReturnRequest()
.ResourceAddress;

NoSeparation = OPI_HTTPRequests.NewRequest()
.Initialize("https://example.com/page")
.SetURLParams(ParametersStructure)
.ProcessRequest("GET", False)
.ReturnRequest()
.ResourceAddress;
Result
"No separation: /page?arrayfield=[val1,val2,val3];\nSeparation: /page?arrayfield=val1&arrayfield=val2&arrayfield=val3\nSeparation (php): /page?arrayfield[]=val1&arrayfield[]=val2&arrayfield[]=val3"