Apache Tomcat与Mod_JK URL解码问题

时间:2015-01-12 23:05:05

标签: apache tomcat7 urlencode apache-shindig

我正在使用apache tomcat和mod_jk并在其上运行shindig。我试图将以下网址传递给它

http://download.finance.yahoo.com/d/quotes.csv?s= ^ GSPTSE + ^ SPCDNX + MIC.TO + ABX.TO + AEM.TO&安培; F = snl1d1t1c1急症=&的.csv放大器;随机= 5683

并且它无法给出错误400(无效的url参数)

如果我在没有任何参数的情况下传递了网址,那就完全正常了。

你可以查看以下网址的consol日志

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

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

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

谢谢。

此致 拉吉

1 个答案:

答案 0 :(得分:0)

最有可能的问题是,插入符号(^)不是有效的URL字符。他们被认为是'不安全的"每RFC1738。引用该RFC:

  

......其他角色不安全,因为网关和其他传输   已知代理有时会修改这些字符。这些   字符是" {","}"," |"," \"," ^ " ,"〜"," [","]"和"`"。

您应使用%5E对网址中的插入符号进行编码。一些程序员和库默认情况下不这样做,因为它不是常用的符号,有些系统即使不完全兼容也能正确处理它。

您的示例中不清楚您是否正在对您的网址进行编码,如果是,那么您在何处进行编码。如果根本不编码,您可能还需要对加号进行编码。根据您的示例,完全编码的s值为:

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