Apache Tomcat с проблемой декодирования URL Mod_JK

Я использую Apache Tomcat с mod_jk и запускаю Shindig на нем. я пытаюсь передать ниже 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

Я пробовал так много вещей, но не повезло. я не уверен, является ли это проблемой кота или чем-то еще.

Если у какого-либо эксперта возникла та же проблема, пожалуйста, поделитесь информацией.

Спасибо.

С уважением, Радж

1 ответ

Решение

Скорее всего, ваша проблема в том, что символ вставки (^) не является допустимым символом URL. Они считаются "небезопасными" согласно RFC1738. Цитата из этого RFC:

... Другие символы небезопасны, поскольку, как известно, шлюзы и другие транспортные агенты иногда изменяют такие символы. Это символы "{", "}", "|", "\", "^", "~", "[", "]" и "`".

Вы должны закодировать каретки в вашем URL, используя %5E, Некоторые программисты и библиотеки не делают этого по умолчанию, так как он не является широко используемым символом, а некоторые системы обрабатывают его без ошибок, даже если они не полностью совместимы.

Из вашего примера не ясно, кодируете ли вы свой URL, и если да, то где вы это делаете. Если кодирование вообще отсутствует, вам также может понадобиться кодировать символы плюс. Полностью закодированный s значение для вашего примера будет:

%5EGSPTSE%2B%5ESPCDNX%2BMIC.TO%2BABX.TO%2BAEM.TO
Другие вопросы по тегам