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
Я пробовал так много вещей, но не повезло. я не уверен, является ли это проблемой кота или чем-то еще.
Если у какого-либо эксперта возникла та же проблема, пожалуйста, поделитесь информацией.
Спасибо.
С уважением, Радж
1 ответ
Скорее всего, ваша проблема в том, что символ вставки (^) не является допустимым символом URL. Они считаются "небезопасными" согласно RFC1738. Цитата из этого RFC:
... Другие символы небезопасны, поскольку, как известно, шлюзы и другие транспортные агенты иногда изменяют такие символы. Это символы "{", "}", "|", "\", "^", "~", "[", "]" и "`".
Вы должны закодировать каретки в вашем URL, используя %5E
, Некоторые программисты и библиотеки не делают этого по умолчанию, так как он не является широко используемым символом, а некоторые системы обрабатывают его без ошибок, даже если они не полностью совместимы.
Из вашего примера не ясно, кодируете ли вы свой URL, и если да, то где вы это делаете. Если кодирование вообще отсутствует, вам также может понадобиться кодировать символы плюс. Полностью закодированный s
значение для вашего примера будет:
%5EGSPTSE%2B%5ESPCDNX%2BMIC.TO%2BABX.TO%2BAEM.TO