在使用openConnection()为最终的httpget构建javaurl时,如何对CGI参数进行编码
我需要使用java对CGI进行HTTP访问,并向其传递一些参数,其中一个参数本身就是带有一些嵌入CGI参数的URL 我试过了在使用openConnection()为最终的httpget构建javaurl时,如何对CGI参数进行编码,java,http,cgi,Java,Http,Cgi,我需要使用java对CGI进行HTTP访问,并向其传递一些参数,其中一个参数本身就是带有一些嵌入CGI参数的URL 我试过了 String cgiArgs="client="+clientAddr+"&tag="+sessionId+"&rates="+ratesString +"&callbackURL="+URLEncoder.encode(callbackURL); if (null != debugGateway) cgiArgs += "&
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方法是什么