- Регистрация
- 28.05.2016
- Сообщения
- 555
- Благодарностей
- 457
- Баллы
- 63
Встроенные кубики ZennoPoster для выполнения запросов GET/POST не настолько настраиваемые как может быть необходимо пользователю.
Многие решают специфические задачи при помощи C# кода.
Предлагаемое мной решение гораздо проще для людей, не знакомых с программированием, а также является более гибким.
cURL - очень мощная консольная программа для выполнения запросов к удаленным серверам.
Описание программы:
https://ru.wikipedia.org/wiki/CURL
Для того чтобы протестировать запрос нам необходимо:
1) Открыть режим командной строки
2) Ввести необходимую комманду
3) Получить результат
4) Вставить параметры команды в переменную ARGUMENTS в шаблоне.
Для работы с CURL я написал сниппет на C#, который запускает CURL с заданными аргументами в скрытом режиме и возвращает результат.
В каталог с проектом необходимо поместить 2 файла:
curl.exe - сама программа
curl-ca-bundle.crt - сертификат для работы с протоколом https
Сниппет берет параметры для запуска из переменной ARGUMENTS
Возвращает результат в переменную RESULT
Если произойдет ошибка, код сгенерирует исключение, в этом случае можно будет выйти по красной линии из кубика.
При тестировании в режиме командной строки необходимо перед командой вводить имя программы. Пример:
При использовании в проекте, в переменную ARGUMENTS нужно лишь положить сами аргументы. Пример:
Разберем парочку составленых комманд специально для ZennoPoster на отдельные части:
Все параметры, кроме самого url являются не обязательными
Выполняет GET запрос на http://test.com?aaa=111&bbb=222
--include
Выводить в результат заголовки ответа от сервера
--location
Следовать перенаправлениями, если сервер вернул заголовок Location
--proxy "{-Variables.PROXY-}"
Установить прокси из переменной. В переменную предаварительно необходимо положить текущий прокси проекта.
Параметр понимает как Http так и Socks прокси.
--user-agent "{-Profile.UserAgent-}"
Устанавливает UserAgent из текущего проекта
--cookie "{-Project.Directory-}cookies\{-Profile.NickName-}"
--cookie-jar "{-Project.Directory-}cookies\{-Profile.NickName-}"
Два параметра отвечают за обработку cookies. При получении cookies от сервера создают файл в каталоге cookies текущего проекта, и назначают ему имя взятое из профиля.
Тут в качестве имени файла можно либо заранее использовать сгенерированный ID, либо любое другое значение.
При последующих запросах кукисы удачно отправляются, если указанные файлы уже существуют.
Для того, чтобы выполнить POST запрос, достаточно добавить параметр:
--data "aaa=123&bbb=test"
CURL также позволяет брать команды из файла
https://ec.haxx.se/cmdline-configfile.html
Пример:
В файле cmdline.txt каждый параметр должен быть указан с новой строки:
Для более детального изучения возможностей рекомендую ознакомится:
http://osxh.ru/terminal/command/curl
https://curl.haxx.se/docs/httpscripting.html
https://andreyex.ru/operacionnaya-sistema-linux/5-osnovnyx-primerov-komandy-curl/
Это крайне полезная штука. Рекомендую детальнее расмотреть все возможности данной утилиты.
Буду рад ответить на интересующие вас вопросы по данному материалу, так и в целом по технической части реализации.
Многие решают специфические задачи при помощи C# кода.
Предлагаемое мной решение гораздо проще для людей, не знакомых с программированием, а также является более гибким.
cURL - очень мощная консольная программа для выполнения запросов к удаленным серверам.
Описание программы:
https://ru.wikipedia.org/wiki/CURL
Для того чтобы протестировать запрос нам необходимо:
1) Открыть режим командной строки
2) Ввести необходимую комманду
3) Получить результат
4) Вставить параметры команды в переменную ARGUMENTS в шаблоне.
Для работы с CURL я написал сниппет на C#, который запускает CURL с заданными аргументами в скрытом режиме и возвращает результат.
В каталог с проектом необходимо поместить 2 файла:
curl.exe - сама программа
curl-ca-bundle.crt - сертификат для работы с протоколом https
Сниппет берет параметры для запуска из переменной ARGUMENTS
Возвращает результат в переменную RESULT
Если произойдет ошибка, код сгенерирует исключение, в этом случае можно будет выйти по красной линии из кубика.
При тестировании в режиме командной строки необходимо перед командой вводить имя программы. Пример:
Код:
curl --include --location http://test.com
Код:
--include --location http://test.com
Код:
--include --location --proxy "{-Variables.PROXY-}" --user-agent "{-Profile.UserAgent-}" --cookie "{-Project.Directory-}cookies\{-Profile.NickName-}" --cookie-jar "{-Project.Directory-}cookies\{-Profile.NickName-}" http://test.com?aaa=111&bbb=222
Выполняет GET запрос на http://test.com?aaa=111&bbb=222
--include
Выводить в результат заголовки ответа от сервера
--location
Следовать перенаправлениями, если сервер вернул заголовок Location
--proxy "{-Variables.PROXY-}"
Установить прокси из переменной. В переменную предаварительно необходимо положить текущий прокси проекта.
Параметр понимает как Http так и Socks прокси.
--user-agent "{-Profile.UserAgent-}"
Устанавливает UserAgent из текущего проекта
--cookie "{-Project.Directory-}cookies\{-Profile.NickName-}"
--cookie-jar "{-Project.Directory-}cookies\{-Profile.NickName-}"
Два параметра отвечают за обработку cookies. При получении cookies от сервера создают файл в каталоге cookies текущего проекта, и назначают ему имя взятое из профиля.
Тут в качестве имени файла можно либо заранее использовать сгенерированный ID, либо любое другое значение.
При последующих запросах кукисы удачно отправляются, если указанные файлы уже существуют.
Для того, чтобы выполнить POST запрос, достаточно добавить параметр:
--data "aaa=123&bbb=test"
CURL также позволяет брать команды из файла
https://ec.haxx.se/cmdline-configfile.html
Пример:
Код:
curl -K cmdline.txt http://example.com
Код:
-F "test1=test1"
-F "test2=test2"
-F "test3=test3"
Для более детального изучения возможностей рекомендую ознакомится:
http://osxh.ru/terminal/command/curl
https://curl.haxx.se/docs/httpscripting.html
https://andreyex.ru/operacionnaya-sistema-linux/5-osnovnyx-primerov-komandy-curl/
Это крайне полезная штука. Рекомендую детальнее расмотреть все возможности данной утилиты.
Буду рад ответить на интересующие вас вопросы по данному материалу, так и в целом по технической части реализации.
- Тема статьи
- Другое
- Номер конкурса статей
- Шестой конкурс статей
Вложения
-
836,8 КБ Просмотры: 1 888
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: