In addition to a slash being the divider between the URL marker and the parameters, a question mark can be used. In this case the parameter mapping in the Friendly URL Configuration (FSCOWS@1.1001:WebServiceConfiguration) will be ignored.
If a question mark is used as divider, the following string is interpreted as a URL query string. The implementation then tries to parse the parameters assuming each parameter (or key-value pair) is separated by a "&" character and spitted by “=”. Both key and value are URL-Decoded before they are inserted to the Dictionary. The parsed values are then passed to the DAV action by the transaction variable TV_FRIENDLYURL_URL_PARAMS as a COOSYSTEM@1.1:DICTIONARY.
Value of dictionary TV_FRIENDLYURL_URL_PARAMS:
key: param1value: 123
key: param2value: value2
key: param3value: COO.126.96.36.199
Values in this dictionary are of type COOSYSTEM@1.1:STRING
Request parameters can be sent in a HTTP POST request in the HTTP body. This is usually used when a HTML POST form is sent to the web server. The values are provided as key/value pairs similar to a HTTP GET request. The HTTP body can be encoded in two ways:
URL encoded form data
The parameters are encoded similar to those of the HTTP GET request.
Multipart form data
The parameters are encoded as multipart type. This is usually used when a file is to be uploaded to the web server. The file is stored at the web server and deleted when the HTTP request is finished. The absolute path to the file is provided as value in the resulting dictionary.
In both cases it is assumed that non ASCII characters are properly encoded as UTF-8. By specifying the attribute accept-encoding=”UTF-8” in the HTML form it is ensured that the characters are encoded properly.
For Microsoft Internet Explorer, a workaround is necessary to ensure the correct behavior. A hidden form field has to be added to the HTML form. In this case the Microsoft Internet Explorer recognizes a non ASCII character and encodes the parameters in the HTTP POST request properly.
<input name="ieworkaround" type="hidden" value="☠"/>
To utilize certain features of the vApp Engine, a certain URL marker is used to mark certain URL parts as only relevant for the vApp Engine itself.
Everything in the URL following the defined parameter “&vappquerystring=true“ is considered as an argument for the vApp Engine and therefore not interpreted by the Friendly URL parser.
Only the value of “param1” and “param2” is passed to the friendly URL implementation.