Apache Tomcat 有 Mod_JK URL 解码问题

Apache Tomcat with Mod_JK URL decoding issue

我正在使用带有 mod_jk 和 运行 shindig 的 apache tomcat。我正在尝试将下面的 url 传递给它

http://download.finance.yahoo.com/d/quotes.csv?s=^GSPTSE+^SPCDNX+MIC.TO+ABX.TO+AEM.TO&f=snl1d1t1c1&e=.csv&random=5683

它没有给出错误 400(无效的 url 参数)

如果我在没有任何参数的情况下传递 url,它工作得很好。

您可以查看下面的控制台日志 url

http://portaltab.com/shindig/gadgets/ifr?url=http://igstock.googlecode.com/svn/trunk/modules/canada_stock_market_on_ig.xml

我尝试了很多东西,但没有运气。我不确定这是 tomcat 问题还是其他问题。

如果有专家遇到同样的问题,请分享一些信息。

谢谢。

此致, 拉吉

您的问题很可能是因为插入符号 (^) 不是有效的 URL 字符。他们被认为是 "unsafe" 每 RFC1738。引用该 RFC:

...Other characters are unsafe because gateways and other transport agents are known to sometimes modify such characters. These characters are "{", "}", "|", "\", "^", "~", "[", "]", and "`".

您应该使用 %5E 对 URL 中的插入符进行编码。一些程序员和库默认情况下不这样做,因为它不是常用的符号,一些系统即使不完全兼容也可以毫无错误地处理它。

如果您正在对 URL 进行编码,从您的示例中并不清楚,如果是,您在何处进行编码。如果根本不编码,您可能还需要对加号进行编码。根据您的示例,完全编码的 s 值将是:

%5EGSPTSE%2B%5ESPCDNX%2BMIC.TO%2BABX.TO%2BAEM.TO