We are evaluating Katalon Studio as a potential tool of choice for API Testing.
We have Web Service Request objects which are GET requests with a bunch of parameters being passed in the URL. One of those parameters is a comma-separate value (ABC1, ABC2) which needs to be passed with a comma in the request. However, “comma” is being encoded into its corresponding hexa code by default (%2C) which my endpoint cannot understand.
Is there a way to not have the URL encoded by default? Without this, most of our APIs cannot be tested and am looking for a potential solution or a workaround.
Thanks anyone that can help me with this.
Sorry to have to tell you this…
“,” (COMMA) is a URI reserved character. Reserved characters when used in a URL/URI have a reserved purpose. In this case (and unfortunately for you) COMMA is reserved as an alternative to
SEMI-COLON whose purpose is defined as a delimiter for the querystring parameters.
If data for a URI component would conflict with a reserved character’s purpose as a delimiter, then the conflicting data must be percent-encoded before the URI is formed.
https://tools.ietf.org/html/rfc3986#section-2.2
I am not aware of any way to alter what Katalon is doing. It is, after all, performing correctly.
There is of course a chance I misunderstood your question. I am picturing your query looking something like this (in the URL)
?param1=(ABC1,ABC2)...
If that’s correct, you should quote the spec above to the developers of the endpoint/backend and suggest strongly that they fix their interface. A strong argument should be made that following the spec allows them to “play nice” with other systems.
Aside: I imagine they have code at the backend that is parsing the value and splitting on comma. It’s not difficult to use another character or even %2C
and decode from there.