0

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

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 的 consol 日志

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

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

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

谢谢你。

问候, 拉吉

4

1 回答 1

0

您的问题很可能是因为插入符号 (^) 不是有效的 URL 字符。根据RFC1738 ,它们被认为是“不安全的” 。引用该 RFC:

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

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

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

%5EGSPTSE%2B%5ESPCDNX%2BMIC.TO%2BABX.TO%2BAEM.TO
于 2015-01-12T23:35:53.197 回答