Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   "Ручное" формирование POST запроса в браузере (http://forum.oszone.net/showthread.php?t=50223)

Greyman 08-06-2005 13:17 331032

"Ручное" формирование POST запроса в браузере
 
Привет, человеки! Может кто знает, как можно в "ручном" режиме формировать POST запрос в браузере?

Что имеется в виду? Для примера, ниже приведен запрос, который можно "впечатать" в окне терминала, подключившись telnet'ом к HTTP порту прокси-сервера:
Код:

post http://www.whois-service.ru/lookup/ HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 22

domain=132.132.123.123

В этом случае я самостоятельно могу "вбивать" URL-формы (в примере - "http://www.whois-service.ru/lookup/"), а также саму передаваемую информацию (в примере - "domain=132.132.123.123") и, соответственно, объем передаваемых данных (в примере - "22"). Все бы ничего, можно даже кодировки задавать..., но... ответ я получаю там же в окне терминала. А оно мне надо? Нет, мне надо получить ответ на подобный запрос в окне браузера. Т. о. стоит задача "ручного" формирования запроса из браузера, при котором обязательно долны произвольно вводиться:
1. URL формы, куда передается запрос;
2. Сами передаваемые данные (объем их может подсчитываться автоматом).
Так же желательно возможность выбора кодировки (комбинация Content-Encoding, Content-Language и Content-Transfer-Encoding).

Может кто какой плугин встречал?

CyberDaemon 08-06-2005 14:44 331062

Может тебе проще HTML-страничку для этой задачи написать? Открыл файлик - заполнил поля - отправил.

Greyman 08-06-2005 23:06 331208

CyberDaemon
Хм... Зачем мне ее в этом случае писать? В таком случае я могу сохранять нужные мне уже готовые формы... Но мне нужно универсальное средство. Твой вариант не позволяет произвольно решать п.1 поставленной задачи...

hasherfrog 10-06-2005 11:01 331704

Greyman
Решение конкретной задачи уже сделал.
Вот по более "абстракным" данным пока не знаю...

hasherfrog 10-06-2005 11:12 331710

Проблема только в том, что надо знать всё про элементы формы. В общем случае - имя. Т.е. при создании запроса domain=xxx пользователь должне ввести в поле "оправить что" именно "domain=xxx". А если элементов формы несколько, то как их помнить? В общем, всё сводится к тому, что в готовом решении должно заполнятся перед отправкой либо поле формы без имени (а такое вряд ли возможно), либо каждое поле отдельно - но как их узнать? Парсить вводимые пользователем комбинации А=В; С=D; E=F - теоретически сработает. Но для меня написать парсер на js - Сложно. Не люблю я JS :[ Хотя............... счас-счас-счас........

hasherfrog 10-06-2005 11:36 331725

Нет, "хак" не вышел никакой, потому что при формировании POST запроса используется "Content-Disposition: form-data". идея была в том, чтобы через textarea передать сам запрос. Но textarea превращается в form-data и кирдык. Жаль.

Остаётся только вариант с парсером... Но у меня на это вот уж точно нет времени :[

Vadikan 17-06-2005 07:31 333769

Greyman
Ты ведь Оперой пользуешься? Думаю, следующие две статьи тебе помогут:
http://nontroppo.org/wiki/FindingPOSTQueries
http://www.schrode.net/opera/search/search_ini.html

Если не разберешься сам, поможем, однако я не обещаю зацикливаться на данном конкретном whoiz сервисе.

Greyman 17-06-2005 09:21 333791

Vadikan
Хм... Предлагаешь использовать оперовский поисковый движек для ручного формирования POST-запросов? Ну можно конечно, только извратно слегка. Ведь этим способом можно вводить только зачение одного из полей формы, а все остальные значения форм и из имена прописывать в search.ini для каждой формы... Очень неудобно каждый раз исправлять конфигурационный файл под разные формы и данные...:(
Есть конечно вариант - вводить в поисковой строке сразу строку с запросом, а в конфиге просто прописать "query=%s"... Можно конечно, но все же хотелось бы иметь возможность и URL вводить. Бывает так, что формы одинаковые, но URL'ы у них разные и каждый раз лезть в конфиг... - ну очень не удобно. Примером могут быть софт-порталы, мызыкальные и книжные каталоги и т. п., где формы одинаковые, а вот их урлы отличаются идентификаторами объекта, для которого вноситься информация (конкретное ПО, музыкальный файл, книга, фильм и т. д.)...

Пока пригодиться и это. За что, конечно, спасибо. Однако останавливаться еще рано... Бум думать дальше...

П.С.
На работе я чаще пользуюсь MyIE2Rus (на основе MS IE). Опера и Firefox правда тоже присутствуют...

П.П.С.
Не совсем понял, что ты имел в виду в конце поста - "я не обещаю зацикливаться на данном конкретном whoiz сервисе." Это о чем?

Vadikan 17-06-2005 10:26 333807

Greyman
Я думал тебя только несколько сервисов интерсует, а ты оказывается глобально задумался ;) ИМХО, к каждому post запросу придется подходить индивидуально.
Цитата:

Примером могут быть софт-порталы, мызыкальные и книжные каталоги и т. п., где формы одинаковые, а вот их урлы отличаются идентификаторами объекта, для которого вноситься информация (конкретное ПО, музыкальный файл, книга, фильм и т. д.)...
Ну сколько у тебя любимых сайтов, на которых ты ищешь информацию? 50? Сделай 50 поисковиков в Опере, назначь им разные keywords (например, listsoft.ru - lsoft, downloads.ru - down, lib.ru - lib и т.д) и ищи из адресной строки keyword <запрос>. Главное, keywords помнить :)

hasherfrog 17-06-2005 11:22 333823

Greyman
Я действительно займусь этим вопросом, но попозже, наверное.
Пока вот для инфы, может, тебе пригодиться:
Букмарклет "эхоформа":
HTML код:

javascript:void(d=document);void(df='http://sam-i-am.com/cgi-bin/echoform.cgi');void(c=(d.all)?d.all.tags('form'):d.getElementsByTagName('form'));with(c){for(i=0;i<length;i++) item(i).setAttribute('action',df);}}
Позволяет узнать, что же ты послал... :]

hasherfrog 17-06-2005 11:22 333826

Чего-то не то. Счас ещё раз:
HTML код:

javascript:void(d=document);void(df='http://sam-i-am.com/cgi-bin/echoform.cgi');void(c=(d.all)?d.all.tags('form'):d.getElementsByTagName('form'));with(c){for(i=0;i<length;i++) item(i).setAttribute('action',df);}

hasherfrog 17-06-2005 11:26 333828

А, ясно, скобка.
В общем, заполняешь форму, кликаешь "эхоформу", кликаешь отправить. Получаешь в виде таблицы, что только что отправил. С принципом действия сам разберёшся :]

Greyman 17-06-2005 13:43 333882

Vadikan
Цитата:

Ну сколько у тебя любимых сайтов, на которых ты ищешь информацию? 50?
Да не ищу, а есть потребность корректировать информацию с помощью форм, использующих POST-запросы. Ну даже меньше 50...
Цитата:

50 поисковиков в Опере, назначь им разные keywords (например, listsoft.ru - lsoft, downloads.ru - down, lib.ru - lib и т.д) и ищи из адресной строки keyword <запрос>.
Ха... Ды к я же говорил:
Цитата:

Цитата я
Бывает так, что формы одинаковые, но URL'ы у них разные и каждый раз лезть в конфиг... - ну очень не удобно. Примером могут быть софт-порталы, мызыкальные и книжные каталоги и т. п., где формы одинаковые, а вот их урлы отличаются идентификаторами объекта, для которого вноситься информация (конкретное ПО, музыкальный файл, книга, фильм и т. д.)...

Т. е. сайт один и тот же, а урлы для форм, куда требуется постить инфу - разные. И что, каждый раз корректировать конфиг? Вот пример с нашего софт-портала:
http://soft.oszone.net/edit.php?pid=494 - Здесь сайт один - <soft.oszone.net>, а вот урлы форм разные и зависят от "PID" конкретного ПО. Аналогично у других подобных сайтов. Для каждого объекта конфиг корректировать просто нереально. Вот я и хотел способ, при котором можно и параметры POST-запроса кидать и сам урл вводить. Первую задачу твой вариант с поисковым движком из Оперы вполне решает (с моим примером формирования запроса), но вот вторую - увы нет...:(

hasherfrog
Сипасибо конечно. Тока я пока обхожусь логгерами HTTP-трафика (примеры - "Fiddler", "HTTPSpy", "TheProxomitron"...). Предложенный тобой способ все же несколько более громоздкий...

hasherfrog 17-06-2005 14:06 333888

Greyman
А вот представь, что у тебя под рукой кроме браувера вообще ничегошеньки нет :] Что тогда? ;] Но мы ещё к этому вернёмся... ;]

Vadikan 18-06-2005 02:40 334140

Цитата:

http://soft.oszone.net/edit.php?pid=494 - Здесь сайт один - <soft.oszone.net>,
Ну тогда я вообще ничего не понимаю. Это же вообще специфический случай. Это ж не поисковик, а запароленый доступ. Каким образом это стыкуется с первым постом в теме вообще непонятно. Ручное формирование? Ну так что может быть проще, чем вручную ввести нужную информацию в браузер? :)


Время: 04:51.

Время: 04:51.
© OSzone.net 2001-