如何使用openConnection()为最终HTTP GET构造java URL时编码CGI参数

时间:2015-12-01 16:31:37

标签: java http cgi

我需要使用java对CGI进行HTTP GET并向其传递一些参数,其中一个参数本身就是一个带有一些嵌入式CGI参数的URL。

我试过

String cgiArgs="client="+clientAddr+"&tag="+sessionId+"&rates="+ratesString
    +"&callbackURL="+URLEncoder.encode(callbackURL);
if (null != debugGateway)
    cgiArgs += "&gateway=" +debugGateway; // for debugging
URI u_ = new URI("http", null, "scimitar", 3000, "/igmpcgi/allocateAuxiliaryStream",
        cgiArgs, null);
URL u = u_.toURL();
URLConnection conn = u.openConnection();

不幸的是,java.net.URLEncoder.encode()方法以这样的方式引用事物,然后在openConnection()期间再次引用。

当某些key = value对包含本身包含?,&和=字符的字符串值时,构造CGI参数字符串的正确java方法是什么?

0 个答案:

没有答案