cancel
Showing results for 
Search instead for 
Did you mean: 

How can I get duplicated querystring params?

valmir_fuhr
Discoverer
0 Kudos

Hi,

I'm facing an issue when trying to get all querystring parameters in a WD JAVA app:

1. URL = http://sap.com?ab=1&ab=2&ba=3

Note that key "ab" appears twice.

2. I'm using following code to get the parameters:


String queryStringParams = "";
Map parameters = WDWebContextAdapter.getWebContextAdapter().getRequestParameterMap();
for (Iterator paras = parameters.keySet().iterator(); paras.hasNext();) 
{
     String key = (String) paras.next();
     String value = WDWebContextAdapter.getWebContextAdapter().getRequestParameter(key);
     queryStringParams = queryStringParams + "&" + key + "=" + value;
}

3. As result, queryStringParams = "ab=1&ba=3"

How can I get both "ab" values?

Thanks,

Valmir Führ

Accepted Solutions (0)

Answers (1)

Answers (1)

valmir_fuhr
Discoverer
0 Kudos

Hi All,

I've found a solution:


String queryStringParams = "";
	  
IWDRequest request = WDProtocolAdapter.getProtocolAdapter().getRequestObject();
Enumeration paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) 
{
    String name = (String) paramNames.nextElement();
    String[] parameterValues = request.getParameterValues(name);
    for (int j = (parameterValues.length-1); j >= 0; j--) 
    {
       String value = parameterValues[j];
       queryStringParams = "&" + name + "=" + value + queryStringParams;
    }
}

This code will build queryStringParams in the same order the params were sent.

Regards,

Valmir Führ