Короче. Я всё сообщение не читал, но примерно понял, чё те надо. Так вот япотиху делаю свой сайт и в это воскресенье вечером выложу текст проги которая делает вот чё: Смотрит юрыляку не загружая её саму а напрямую обращаясь к серваку, + ещё пару полезностей. адрес сайта -
http://www.big-phil.com раздел programms там будет ссылка на java файл.
Есть страница, скажем: http://www.mysite.com/mypage.htm В ней есть форма с несколькими скрытыми полями, каждый раз другими и парой полей, которые надо заполнить и отправить.
Переадресация на страницу mypage2.htm.
поля простые:
hidden1=xxx
hidden2=yyy
EnterName=name
Enterletter=letter
Как возможно автоматизировать процесс, т.е. загрузить страницу из апплета, заполнить нужные поля и отправить запрос методом POST? Так как GET не проходит.
[JAVA] эээ...16.11.01 15:56 Автор: paganoid Статус: Member
> Как возможно автоматизировать процесс, т.е. загрузить > страницу из апплета,
я могу ошибаться, но если у тебя загружаемая страница расположена НЕ на том сервере, где находится апплет, то апплет не может ни получить с нее данные, ни послать их туда из-за соображений безопасности.
> я могу ошибаться, но если у тебя загружаемая страница > расположена НЕ на том сервере, где находится апплет, то > апплет не может ни получить с нее данные, ни послать их > туда из-за соображений безопасности.
У JAVA есть такоие классы URL и OpenStream - с помошью которых можно получить любую информацию с любого адреса, акже можно и послать любую информацию на любой адрес в виде запроса. Другой вопрос, что загрузить - это одно, а исполнить или модифицировать исходные данные - совсем другое! Способо отослать данные методом GET я знаю, но нужен именно POST!
[JAVA] докажи ;)22.11.01 11:02 Автор: paganoid Статус: Member
> > У JAVA есть такоие классы URL и OpenStream - с помошью > которых можно получить любую информацию с любого адреса,
хм, ессна я знаю про эти классы. Они работают в полноценной виртуальной машине Java . А в той, которая используется в АППЛЕТАХ накаляканых на Java, запрос ведет к Security Exception . А ты задавал вопрос именно про АППЛЕТ . Можно поморочиться с цифровой подписью апплетов, тады глядишь браузер и разрешит что-нить загружать.. Но насколько я понимаю, тебе получить сертификат микрософт не светит , как и всем нам ;)
> акже можно и послать любую информацию на любой адрес в виде > запроса. Другой вопрос, что загрузить - это одно, а > исполнить или модифицировать исходные данные - совсем > другое!
если я "загружу" урл вида www.someserver.com/forum.php?var1=val1&var2=val2 ,
то естественно я ПОШЛЮ переменные var1=val1 и var2=val2 ,
т.е. модифицирую все что мне надо. Т.ч. тут бабушка надвое сказала и "загрузить" полностью эквивалентно "модифицировать"
> Способо отослать данные методом GET я знаю, но > нужен именно POST!
тебе нужна спецификация HTTP запроса методом POST ? От GET он не шибко отличается... Если проблема в этом, то могу рассказать, как яго делать..
> хм, ессна я знаю про эти классы. Они работают в полноценной > виртуальной машине Java . А в той, которая используется в > АППЛЕТАХ накаляканых на Java, запрос ведет к Security
Мне ни что не запрещает запускать классы из консоли.
> Exception . А ты задавал вопрос именно про АППЛЕТ . Можно > поморочиться с цифровой подписью апплетов, тады глядишь > браузер и разрешит что-нить загружать.. Но насколько я > понимаю, тебе получить сертификат микрософт не светит , как > и всем нам ;)
Он и не нужен :оР
> > > акже можно и послать любую информацию на любой адрес в > виде > > запроса. Другой вопрос, что загрузить - это одно, а > > исполнить или модифицировать исходные данные - совсем > > другое! > > если я "загружу" урл вида > www.someserver.com/forum.php?var1=val1&var2=val2 , > то естественно я ПОШЛЮ переменные var1=val1 и var2=val2 , > т.е. модифицирую все что мне надо. Т.ч. тут бабушка надвое > сказала и "загрузить" полностью эквивалентно > "модифицировать"
Модифицировать не исходные данные а запрос - вот о чем ты и толкуешь. И именно мне это и надо.
> > > Способо отослать данные методом GET я знаю, но > > нужен именно POST! > > тебе нужна спецификация HTTP запроса методом POST ? От GET
Точнее мне надо узнать как это осуществить из Java не формируя саму HTML страницу и не создавая фиктивный клик по кнопке Submit в ней.
> он не шибко отличается... Если проблема в этом, то могу > рассказать, как яго делать..
Будь добр, а то я уже замучался. Ума не приложу куда вставлять передаваемые параметры.
[JAVA] HTTP POST23.11.01 10:44 Автор: paganoid Статус: Member Отредактировано 23.11.01 10:46 Количество правок: 1
> > > Способо отослать данные методом GET я знаю, но > > > нужен именно POST! > > > > тебе нужна спецификация HTTP запроса методом POST ? От > GET > > Точнее мне надо узнать как это осуществить из Java не > формируя саму HTML страницу и не создавая фиктивный клик по > кнопке Submit в ней. > > > он не шибко отличается... Если проблема в этом, то > могу > > рассказать, как яго делать.. > > Будь добр, а то я уже замучался. Ума не приложу куда > вставлять передаваемые параметры.
открываешь сокет (не помню как это в жабе делается), видимо именно твой stream, коннектишься к 80 порту нужного сервака. И пишешь туда
POST www.someserver.com HTTP/1.0
User-Agent: Internet Exhlorer Bla Bla
Referer: http://linkedPageURL
Host: www.someserver.com
Content-Type: application/x-www-form-urlencoded
Content-Length: ТУТРАЗМЕРВБАЙТАХОТСЫЛАЕМОГОТЕКСТА
cgiVar1=VAL1&cgiVar2=VAL2
---
вотщем cgiVar1=VAL1&cgiVar2=VAL2 - это пары cgi-переменная скрипта (поле формы HTML)-значение, разделенные &, причем VAL1 должно быть закодировано urlencode .
ТУТРАЗМЕРВБАЙТАХОТСЫЛАЕМОГОТЕКСТА - это размер строки-тела "cgiVar1=VAL1&cgiVar2=VAL2"
заголовок отделяется от тела двумя \r\n
сразу после того, как насовал это в сокет, читаешь из него, что вернут (если надо).
Короче. Я всё сообщение не читал, но примерно понял, чё те надо. Так вот япотиху делаю свой сайт и в это воскресенье вечером выложу текст проги которая делает вот чё: Смотрит юрыляку не загружая её саму а напрямую обращаясь к серваку, + ещё пару полезностей. адрес сайта -
http://www.big-phil.com раздел programms там будет ссылка на java файл.