2015-01-12 3 views
0

Я использую apache tomcat с mod_jk и запускаю shindig на нем. Я пытаюсь передать ниже URL к немуApache Tomcat с Mod_JK Проблема с расшифровкой URL-адреса

http://download.finance.yahoo.com/d/quotes.csv?s=^GSPTSE +^SPCDNX + MIC.TO + ABX.TO + AEM.TO & F = snl1d1t1c1 & е = .csv & случайный = 5683

и не дает ошибку 400 (параметр Invalid url)

если я передаю URL-адрес без каких-либо параметров, он отлично работает.

вы можете посмотреть на журнал CONSOL для ниже URL

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

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

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

спасибо.

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

ответ

0

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

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

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

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

%5EGSPTSE%2B%5ESPCDNX%2BMIC.TO%2BABX.TO%2BAEM.TO 
Смежные вопросы