|
|
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
..заранее прошу прощения за косноязычие, если что не так понял, поправьте: В проекте необходимо принять сообщение-ответ от сервера (Liqpay), сформированный в виде зашифрованного BASE64 файла XML. т.е. вот что сказано в API: <quote> Наш ответ прийдет к вам в закодированном виде, внутри кода находиться XML с ответом. Чтоб раскодировать XML вам необходимо проделать следующую процедуру, пример: Perl: $xml_decoded=decode_base64($xml); PHP: $xml_decoded=base64_decode($xml); После распаковки вы получите XML следующего вида:.... </quote> структура проекта использует struts2, поэтому, при поступлении сообщения от сервера вызывается action с указанным именем классом. Подскажите пожалуйста, как можно забрать в этом экшене поступающее сообщение? ЗЫ: раньше приходящее сообщение было сформировано в виде списка параметров, поэтому, обработка таких сообщений не представляла сложность - нужно было только создать соответствующие сеттеры-геттеры имеющихся полей. А сейчас, как я понимаю, сообщение приходит в виде бессвязного набора буквочек, из которых нужно выдернуть XML. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 19:08 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
VotsenzukВ проекте необходимо принять сообщение-ответ от сервера (Liqpay), сформированный в виде зашифрованного BASE64 файла XMLНе зашифрованного, а "завёрнутого". Commons codec позволяет работать, в том числе, с Base64. Полученный XML(-поток) надо "скормить" парсеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 19:29 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
Как "разворачивать" я умею. Тут вопрос в том, каким образом получить этот поток в экшене? Как мне получить ту заветную строчку, которую нужно раскодировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2010, 22:42 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
VotsenzukТут вопрос в том, каким образом получить этот поток в экшене? Диспетчеризировать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 17:43 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
Votsenzuk А как/чем вы посылаете запрос на сервер Liqpay? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 20:08 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovVotsenzukТут вопрос в том, каким образом получить этот поток в экшене? Диспетчеризировать ? в проекте используется этот механизм. Просто я не досконально понимаю его сущность. Раньше в ответе сервера на запрос в класс проекта (который написан у меня) возвращались значения готовыми параметрами. То есть при приходе ответа сервера у меня вызывается класс, в котором есть сеттеры своих свойств, а парсер вызывает их по мере наличия этих параметров в ответе (я тут ничего не путаю?). А теперь, в новой версии API параметры запакованы BASE64 и естественно не парсятся при получении. Просто я не понимаю, как мне вместо параметров получить строчку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 23:10 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
and)Votsenzuk А как/чем вы посылаете запрос на сервер Liqpay? В проекте за это отвечает связка соотв. класса и странички JSP с формированием запроса. Вот только не пойму как это влияет на ПРИЕМ ответа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2010, 23:14 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
Votsenzuk, может там через httpClient, отправил запрос, получил responseInputStream, считал из него xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:27 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
или аналогично получил request через ServletRequestAware -> request.getInputStream(); -> parse -> xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 00:34 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
VotsenzukПросто я не понимаю, как мне вместо параметров получить строчку?И что мешает развернуть в вашем классе BASE64 в то, что было раньше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.12.2010, 07:50 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
Спасибо откликнувшимся! Расскажу чем дело кончилось. С HttpServletRequest/response ничего не получилось :(. Параметры, как и собственно искомые строчки приходящего пакета я так и не увидел. getInputStream ничего не дал, возвращаются только параметры запроса, но что внутри него - неясно. Дело закончилось тем, что какой-то сочувствующий человек выложил на форуме сервера имя параметра, который передается в ответе. В мануале его, конечно, не было. Поэтому, непонятно было с чем бороться. С именем параметра стало намного легче, в итоге все получилось. ЗЫ: не буду создавать другой темы, помогите, пожалуйста, с таким преобразованием: String decoded = Base64.decode(coded).toString; Вроде как все красиво - берется строка coded, декодируется, метод возвращает bytes[], который тут же обращается в ".toString". Только вот волшебства не происходит - в decoded получается не строка, а черт знает что! Если же сделать побайтное преобразование того, что отдает метод decode в символы строки, то все нормально... Но как-то ведь можно это сделать одной строкой? Помогите разобраться чайнику :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 21:10 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
VotsenzukНо как-то ведь можно это сделать одной строкой? Помогите разобраться чайнику :) Код: plaintext 1. 2. 3. 4. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2010, 18:48 |
|
||
|
Struts2/Tomcat и прием сообщения
|
|||
|---|---|---|---|
|
#18+
pasha701Если знать кодировку XML, то: Код: plaintext 1. Спасибо! Получилось! ЗЫ: пошел изучать как парсить структуру XML. Верю, что в java найдется что-то и для нее, т.к. разбирать вручную (поиском начала и окончания тега, как у меня это делается сейчас) опять же - "некрасиво" :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2010, 23:06 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=193&tid=2127911]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 309ms |

| 0 / 0 |
