Thanks Dave.  Perhaps renaming otherQueryStringArgs to something better describing what it is for would help the next person who needs to understand this code.  proxyControllerArgs? still not ideal but better than otherQueryStringArgs

I'm actually wondering why we need to break up the required portal download service url into these components when it no longer really fits, why not just pass the required portal download service url to perform the download and build the url closer to where the download option is invoked.

And notice how I said portal download service, are we really proxying here anymore?  I found the inclusion of the downloadUrlList service as a proxying service a bit confusing as well.