![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Есть сторонний сервер с веб интерфейсом для ввода данных. Есть собственное ПО и СУБД.
Задача. Отгружать в конце дня накопленные данные из нашего сервера на центральный через эту веб форму. (согласен - реализация через одно место, но пока центр не напишет новое ПО приходится ручками вводить себе и потом им) Все бы ничего, но на их html страничке две формы: первая содержит поля для ввода данных, вторая кнопку без submit - которая вызывает их процедуру проверки данных и загрузку в центральный сервер. Выглядит эта страничка так:
Первую форму я без проблем заполняю, но ввод данных не происходит. В выходном потоке получается эта же страничка с заполненными полями первой формы. Как программно нажать кнопку во второй форме после заполнения первой? Это сообщение отредактировал(а) tigerkvv - 28.7.2010, 18:39 |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
А не проще ли посмотреть, что за HTTP запрос формируется и делать его прямо из приложения ?
|
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Конечно проще, сразу смотрел, но функции checkpatternagain нигде в коде нет и что она делает конкретно - загадка.
Уточню, выше писал что запрос с данными для первой формы (данные которые надо отправить) делается нормально. При его выполнении заполняются поля с данными, но отправка не происходит как обычно в более простых случаях. Сервер возвращает ту же форму для заполнения данных но с моими данными. А вот заставить сервер принять данные в обработку получается только нажав на кнопку во второй форме. Как все-таки нажать на эту кнопку программно? Или как после заполнения выполнить скрипт который в ней прописан в ONCLICK='if(checkpatternagain())with(document.forms.formInput){toimik.value=document.forms.formSubmit.toimik.value;salastada.value=(document.forms.formSubmit.salastada.checked ? 1 : 0);operation.value="search";target="_self";submit();}' Это сообщение отредактировал(а) tigerkvv - 28.7.2010, 13:00 |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 1 Всего: 44 |
tigerkvv, а обязательно яву использовать?
я для таких целей исползую perl - все очень просто и приятно |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
chaos,
Наше ПО - это большой комплекс написанный и развивающийся сейчас на JAVA. Хотелось бы все делать с одного рабочего места, сейчас это приемная. Девушка заполняет целый день какие-то данные, прога должна вечером отправлять, выдавать ошибки если что. Очень неудобно и некрасиво если для этого прийдется запускать что-то другое, потом эти ошибки исправлять у себя в базе (своим клиентом), потом опять другим пытаться отправить второй раз )))) Геморой. Надо все красиво и из одного окошка. Разве что есть красивый способ работать с перл из Явы? Думаю должен быть простой способ нажать кнопку из Явы. Типа получаем имя формы.объкт.submit ) Но я такого не знаю, может кто поможет. Перерыл уже много форумов и наших и буржуйских, прямого ответа не нашел ( |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Вопрос такой: а как вы вообще получаете этот HTML и заполняете поля формы? Вы используете какой-то системный браузер или что?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
LSD,
Сначала выполняется соединение , потом:
до анализа ошибок не доходит, если скопировать содержимое tpAnswer и просмотреть вручную или броузером, то видно страницу с заполненными параметрами и кнопочкой в конце. Если зайти на страницу броузером вручную то эта же, но пустая форма с кнопочкой (во второй форме) такие же. (см. первый пост) |
|||
|
||||
Uvarov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 29.7.2010 Где: Krasnodar, Russia Репутация: нет Всего: нет |
"... вторая кнопку без submit ..." - скорее всего ajax.
".. но функции checkpatternagain нигде в коде нет и что она делает конкретно - загадка ..." - Внимательно просмотрите все подключаемые *.js файлы. Если не нашли - плохо искали =) используйте FireBug(дополнение бр FireFox) для разбора post\get запросов, ajax тоже виден. или адресс сервера в студию, по возможности разберусь. В любом случае нажатие на кнопку программно - не логично. На много легче пост-методом передать php все данные. 2я кнопка скорее всего функция, которая передает переменные из javascript в php. Это сообщение отредактировал(а) Uvarov - 29.7.2010, 01:51 |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
Uvarov,
- так и есть, функция checkpatternagain действительно в подключаемом js - 2я кнопка запускает checkpatternagain, которая передает дополнительные переменные из javascript в php, но я никак не смог придумать как посмотреть что именно - жаль что вы не посоветовали FireBug вчера )), уже выяснил это через httpWatch, два дня потерял (и еще 3 до форума) ))) Всем спасибо за советы, в который раз убеждаюсь, как начнешь кому-то объяснять что тебе надо, так и сам начинаешь понимать как это сделать ))) PS: на форуме много тем с пометкой "решенные", но без явного объяснения как решилась проблема, типа "спасибо за ссылочку - помогло". Дабы не плодить такие темы поясню как решить подобные проблемы другим: - многие странички кроме явных полей для отправки содержат скрытые, кроме того есть еще неявные поля, которые формируются дополнительно скриптами - мало того что эти поля приходится искать по всем скриптам - их значения могут браться вообще за пределами странички, браться с сервера (или другого источника) - отловить такие ситуации помогла программа httpWatch (FireBug - не пробовал), с ее помощью можно увидеть полный набор параметров и их значений передаваемых при выполнении запроса - проанализировав эти данные можно сформировать "правильный" POST Надеюсь понятно и не утомительно ) |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Если страница не содержит хитрого JS, заточенного под конкретный браузер можно не мучатся с анализом HTTP запросов а просто взять тот же Lobo Browser и в нем открыть страничку. Если же есть хитрые JS, то можно использовать JRex.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Честно говоря все равно ен очень понимаю - почему нельзя просто проснифить, что именно отлетает как HTTP и просто сделать тоже самое.
А весь этот JS - все равно в итоге "уедет" HTTP. |
|||
|
||||
Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Попробуйте библиотеку HTMLUnit http://htmlunit.sourceforge.net/
Это фактически браузер без отображения. Ей делать можно все что угодно - заполнять поля, сабмитить формы, получать значения элементов. Главнй ее плюс, что она исполняет JavaScript обрабатываемой сраницы. |
|||
|
||||
tigerkvv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 15.2.2007 Репутация: 1 Всего: 1 |
AntonSaburov,
httpWatch - можно сказать и есть снифер для броузеров, можно использовать конечно любой, просто этот очень удобен, заточен и показывает все про процесс обмена броузера с сервером в удобной , легко понимаемой форме. Сразу этого не сделал, т.к. был уверен, что заполняю все правильно, не первый раз такое делаю, вот и уперся в эту вторую форму с кнопкой. Теперь все нормально прикручиваю куки ) Temdegon, Спасибо, посмотрим что за библиотечка. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |