URL Special Character Handling

The connector communicates with the IOS through HTTP or by sending URL requests. The connector uses the commands you create with the Query Builder as the basis for these URL requests to IOS. The connector does the minimum amount of processing of these commands before sending them to the IOS server as URL requests. The command syntax is structured to be generally URL compatible. However, there are cases where application values must be part of the command request to IOS. An application value might contain characters such as the "&" character. These characters have special meaning as part of a URL and can cause the URL to be interpreted in unintended ways. For example, the following command will be incorrectly interpreted by the IOS server because of the "&" character used to specify the value for the SELECT for the request.

dme:FILE=EMPLOYEE&FIELD=EMPLOYEE;LAST-NAME;FIRST-NAME;EMP-STATUS&SELECT=Company=300&SELECT=First-Name=Roger&Me

Any place in a command where an application value is specified as part of the command string is vulnerable to special character problems. There are three ways to solve the problem, depending on your situation.

Parameterized Command String

Whenever possible, let the connector handle special characters in the application value parts of the command by adding a parameterized command string to your query. Before the connector executes a command, it internally fixes special characters in the parameter value. See Replaceable Parameters in Command Strings. Note that parameterized command strings cannot be use with passthrough commands.

Hexadecimal Equivalent

You can also specify the hexadecimal equivalent of the troublesome character. For example, "Roger&Me" could be specified as "Roger%26Me" where %26 is the hexadecimal equivalent of the "&" character. Because hexadecimal values can be confusing to a reader of your program, it is recommended that you do not directly access hexadecimal values in your programs. Use hexadecimal values only if other approaches do not work in your application.