13 вопросов по использованию POST, GET запросов

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
Цель: Форма регистрации с капчей
Поля стандартные: Имя, Логин, Пароль, Мыло, Капча, Кнопка «Зарегистрироваться»​


Вопросы:

1. Заголовки и Куки в POST-запросе – на этом шаге возникло непонимание след. момент:

a. Если я не желаю использовать GET-запрос для получения куки, а ставлю чек-бокс «Использовать по умолчанию» при создании POST-запроса, то по идее, куки должны подтягиватся в проект, если я до этого совершил переход по ссылке?​

b. Следуя этому предположению – проверил папку \Trash – а там тишина. Нуждаюсь в разъяснении этого момента. Чекбокс «Очищать Куки автоматически» - снял.

c. Примечание: у меня нет необходимости тянуть Заголовки GETом, т.к. всеровно делаю переход на целевую страницу, что бы взять капчу (картинку)


2. Если всетаки тянуть куки GETом, то как они должны выглядеть в итоге?

На входе:
Set-Cookie: a3477590242ccd4810b9fdec9de48cee=317ed3cdd9d32b72d4976885b411e267; path=/
Set-Cookie: ja_edenite_tpl=ja_edenite; expires=Fri, 22-May-2015 17:01:10 GMT; path=/​

a. До какого вида надо это дело спарсить?
b. Сохранить в одну переменную или в две или не принципиально?​


3. Как получить оригинальную конструкцию для формирования своего POST-запроса?

a. Я нашел способ вытаскивать их Хрома, получается такой список:​

jform%5Bname%5D=%D0%9C%D0%B0%D0%BA%D1%81
&jform%5Busername%5D=Max
&jform%5Bpassword1%5D=qwerty000
&jform%5Bpassword2%5D=qwerty000
&jform%5Bemail1%5D=max%40rambler.ru
&jform%5Bemail2%5D=max%40rambler.ru
&jform%5Bcaptcha_hash%5D=OMROH5D842
&jform%5Bcaptcha%5D=dhhbn
&jform%5Bprofile%5D%5Baddress1%5D=
&jform%5Bprofile%5D%5Baddress2%5D=
&jform%5Bprofile%5D%5Bcity%5D=
&jform%5Bprofile%5D%5Bregion%5D=
&jform%5Bprofile%5D%5Bcountry%5D=
&jform%5Bprofile%5D%5Bpostal_code%5D=
&jform%5Bprofile%5D%5Bphone%5D=
&jform%5Bprofile%5D%5Bfavoritebook%5D=
&jform%5Bprofile%5D%5Baboutme%5D=
&jform%5Bprofile%5D%5Bdob%5D=
&option=com_users
&task=registration.register&6dc8cdbf1a8fb7a30b003b876dd0a8a1=1​

Смущают %5B, %5D– догадываюсь, что в проект добавлять надо без спецсимволов, верно?​

б. Существуют ли правила оформления данных для POST-запросов? Может надо еще что то добавлять?
Прошу поделится опытом, если есть пример с комментариями "Что-Куда-Зачем" - будет отлично.

Заранее, Благодарю
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
a. Если я не желаю использовать GET-запрос для получения куки, а ставлю чек-бокс «Использовать по умолчанию» при создании POST-запроса, то по идее, куки должны подтягиватся в проект, если я до этого совершил переход по ссылке?
Экшены POST/GET запросов не связаны с браузером ZP. Эти вещи используются отдельно и данные между ними автоматически не передаются.

b. Следуя этому предположению – проверил папку \Trash – а там тишина. Нуждаюсь в разъяснении этого момента. Чекбокс «Очищать Куки автоматически» - снял.
Эта настройка влияет только на браузер.

2. Если всетаки тянуть куки GETом, то как они должны выглядеть в итоге?

На входе:
Set-Cookie: a3477590242ccd4810b9fdec9de48cee=317ed3cdd9d32b72d4976885b411e267; path=/
Set-Cookie: ja_edenite_tpl=ja_edenite; expires=Fri, 22-May-2015 17:01:10 GMT; path=/​

a. До какого вида надо это дело спарсить?
b. Сохранить в одну переменную или в две или не принципиально?​
В итоге нужно послать строку
Код:
a3477590242ccd4810b9fdec9de48cee=317ed3cdd9d32b72d4976885b411e267; ja_edenite_tpl=ja_edenite


3. Как получить оригинальную конструкцию для формирования своего POST-запроса?
Я делаю это на основе того, что перехватывает сниффер.

a. Я нашел способ вытаскивать их Хрома, получается такой список:
jform%5Bname%5D=%D0%9C%D0%B0%D0%BA%D1%81
...​
Смущают %5B, %5D– догадываюсь, что в проект добавлять надо без спецсимволов, верно?​
Это urlencode. Попробуйте декодировать этот текст с помощью сервиса. (просто для понимания, посылать данные нужно именно в urlencode)
 
  • Спасибо
Реакции: Max Human

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
Я делаю это на основе того, что перехватывает сниффер.
установил этот сниффер, но мозилла теперь не загружается, с критической ошибкой и предложением отправить данные разработчикам..
сниффер пришлось пока убрать..
как бороться?
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Загрузить хром)))
я юзаю Fiddler и проблем вроде не было
 

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
Кто как обрабатывает ошибки? К примеру, если логин занят или капча не правельная, - в заголовке ошибка придет? Какая механика этого процесса? ))
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
а как обходить ограничения демки?
ну я с софтом всегда делаю так: сперва качаю с оф сайта - если меня все устраивает, если софт работает - то ищу таблетку. По ссылке выше (торент) таблетку дают. но я еще не пробывал лечить...
 
  • Спасибо
Реакции: Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
ну я с софтом всегда делаю так: сперва качаю с оф сайта - если меня все устраивает, если софт работает - то ищу таблетку. По ссылке выше (торент) таблетку дают. но я еще не пробывал лечить...
ок, попробую этой таблеткой вылечить..
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
  • Спасибо
Реакции: Max Human

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Я смирился с тем, что это бессмысленно))) гугл зараза как ни крути все равно распознает, что это кусок изображения из его базы. Поэтому ограничиваюсь изменением размеров и вотермарками на картинки, так чтобы мне было удобно, и для этого использую FastStone Image Viewer
 

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
я еще не до конца смерился)) спасибо за рекомендацию))
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Не ну а так стандартные процедуры... пиксель вправо/влево, отзеркалить, поворот, тональность, покромсать, из простого вроде все)))
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
В FireFox для перехвата запросов можно использовать дополнение HttpFox.
Я думал дорвейщиков не осталось совсем, а оказывается попрятались все)
 

silent

Client
Регистрация
05.04.2014
Сообщения
237
Благодарностей
85
Баллы
28
KirillOFF ну да, в дорах денег нет, эту сказку с 2008 слышу :-)
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
В FireFox для перехвата запросов можно использовать дополнение HttpFox.
Я думал дорвейщиков не осталось совсем, а оказывается попрятались все)
А твою аватарку я еще с форума джона приметил))))
 

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
Вопрос:

не могу понять как тянуть капчу, для формирования POST-запроса.

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

- Если делать GET-запрос и получать куки, а потом парсить DOM для получения хеша капчи - получается что сессии разные???

Очень надо что бы объяснили именно принцип работы такого "механизма". Может есть простой пример регистрации с капчей, с помощью POST/GET запросов.

Заранее, благодарю
 

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
Вопрос не решен. Нужна ваша помощь!
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Нету простого примера, надо реализовать по сути свой браузер с блекджеком и всеми вытекающими... дергать только нужные скрипты и элементы, самому выполнять скрипты, если есть. Короче муть, гемморой и бесперспективняк. Не думаю что у кого то есть готовый пример - нужен скоростной парсинг - регайтесь/входите с эмуляцией браузера - сохраняйте куки и потом уже на гетах собирайте работу проекта.
 
  • Спасибо
Реакции: Max Human

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
Lexicon, как то это странно, честно говоря, что в Зенке нет решения такой задачи.

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

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
почему нету. Есть - как раз для этого и эмулируется браузер))))))
Куки не должны храниться в папке Trash их надо сохранять отдельно (хотя может и должны, но чет мне кажется это потоконебезопасным, и здравый смысл говорит что проверять лениво)
 

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
почему нету. Есть - как раз для этого и эмулируется браузер))))))
это понятно:-) но актуально для одного проекта, а когда надо сделать 120 регалок с разными формами - это же вынос мозга )) проще и быстрее было бы работать на POST запросах.
Куки не должны храниться в папке Trash их надо сохранять отдельно (хотя может и должны, но чет мне кажется это потоконебезопасным, и здравый смысл говорит что проверять лениво)
пардон, но я в замешательстве:
ПМ - Настройки - Инстанс - Настройки Инстанса - "Путь к кукам и кэшу"
ПМ - Настройки - Запись - Настройки записи проекта - "Очищать куки автоматически"
Эти настройки тогдла к чему?)) не понимаю.
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Если честно - не пользовался первым методом вообще
Использую 2 сниппета на шарпе
Код:
instance.SaveCookie("C:\\папко\\кука.txt");

instance.LoadCookie("C:\\папко\\кука.txt");
И все у меня хорошо)

Да и по 150 регалкам))) так у всех и форматы пост запросов разные))))
 

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
... Да и по 150 регалкам))) так у всех и форматы пост запросов разные))))
Да Вы правы)) НО собрать POST запрос в автоматическом режиме - реально, а вот подставить значения на автомате (из переменных) в поля формы - не реально.
На скрине показал места куда бы хотелась передавать значения из переменных:

 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
что то вы какой то огород городите...
возьмите все свои 150 сайтов спарсите html код форм сделайте в экселе справочник и пишите регулярки
login|log|nick|nickname и все будет ок... Не ну если конечно вы считаете что быстрее позапросно капчу разберете....
 
  • Спасибо
Реакции: Max Human

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
...возьмите все свои 150 сайтов спарсите html код форм сделайте в экселе справочник и пишите регулярки login|log|nick|nickname и все будет ок...
ну я так и хочу сделать: парсить хтмл - ложить в файлик атрибуты полей формы - тянуть из файла значения - и подставлять по условию.
но как это делается. если нельзя подставить переменные?
 

Max Human

Пользователь
Регистрация
20.04.2014
Сообщения
69
Благодарностей
2
Баллы
8
Lexicon,

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

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
А зачем в цикле?
если у вас одна регулярка на все типы полей. надо просто проставить, чтобы некоторые поля были необязательными
и тогда у вас будет грубо говоря 8 блоков и в них по одной мегарегулярке и все дела... (хотя их составить это будет пипец)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)