GET-запрос
🔗 Оригинальная страница — Источник данного материала
GET-запрос
Описание
ZennoPoster позволяет использовать ❗→ HTTP запросы при работе с различными сайтами. Вы можете получать данные GET запросами, например, запрашивать результаты поиска по запросу в поисковой системе, скачивать файлы, парсить данные, работать с API веб-сервисов и приложений.
Как добавить экшен в проект?
Через контекстное меню Добавить действие → HTTP → GET-запрос
Либо воспользуйтесь ❗→ умным поиском.
Для чего это используется?
- Работа шаблонов без браузера
- Быстрый способ получения данных с сайта
- Скачивать файлы
- Работа с API сервисов
Как работать с экшеном: Вкладка “Основные”
URL
Адрес сайта, по которому будет отправлен запрос, можно использовать ❗→ переменную.
Referer
Заголовок запроса Referer содержит URL исходной страницы, с которой был осуществлён переход на текущую страницу. Заголовок *Referer позволяет серверу узнать откуда был осуществлён переход на запрашиваемую страницу. Можно использовать ❗→ макросы переменных.
Кодировка
Кодировка, в которой будет отправлен запрос.
Таймаут
Максимальное время ожидания ответа от сайта в секундах. При достижении установленного времени, действие будет завершено ошибкой и выйдет по красной ветке. Можно использовать ❗→ макросы переменных.
Загружать
Только содержимое
В переменную будет сохранено только тело ответа
Пример ответа при запро се https://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.8",
"Host": "httpbin.org",
"Referer": "https://google.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-26erb44t-465basaw0z2qwbji492yh5t3"
},
"origin": "1.2.3.4",
"url": "https://httpbin.org/get"
}
Только заголовки
Будут сохранены только заголовки ответа
Пример ответа при запросе https://httpbin.org/get
HTTP/1.1 200 OK
Date: Sat, 23 May 2020 01:56:45 GMT
Content-Type: application/json
Content-Length: 613
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Заголовки и содержимое
В переменную будут сохранены и заголовок ответа, и его тело. Разделены они будут двумя пустыми строками.
Пример ответа при запросе https://httpbin.org/get
HTTP/1.1 200 OK
Date: Sat, 23 May 2020 01:56:45 GMT
Content-Type: application/json
Content-Length: 613
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin:
Access-Control-Allow-Credentials: true
HTTP/1.1 200 OK
Date: Sat, 23 May 2020 01:56:45 GMT
Content-Type: application/json
Content-Length: 613
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
{
"args": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "en-US,en;q=0.8",
"Host": "httpbin.org",
"Referer": "https://google.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-26erb44t-465basaw0z2qwbji492yh5t3"
},
"origin": "1.2.3.4",
"url": "https://httpbin.org/get"
}
Как файл
Этот режим стоит выбирать, если Вы пытаетесь скачать файл с помощью запроса.
В переменную сохранится путь к скачанному файлу.
По умолчанию файлы скачиваются в папку Trash
в директории установленного ZennoPoster. Путь к ней может выглядеть так - C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.4.0.0\Progs\Trash\googlelogo\_color\_92x30dp.png
. Изменить этот путь можно в настройках, глобально для всех п роектов. Или с помощью экшена во время выполнения шаблона.
Как файл + заголовки
В переменную сохранятся заголовки ответа и путь к скачанному файлу.
Положить в переменную
Здесь надо выбрать (или создать новую) переменную, в которую будет сохранён результат запроса.
Как работать с экшеном: Вкладка “Дополнительно”
Редирект
Установить перенаправление - если ответ на запрос будет содержать код редиректа (пример. ответа 301, 302), Zennoposter используя заголовок *Location, перейдёт к следующей странице. Цифрами указываем максимальное количество переходов: 0 - остаться на исходной странице , 5 - количество переходов до конечного url.
Использовать оригинальный URL
Отмена кодирования URL из вкладки "Основное" в urlencode.
Пример:
Оригинальный url: https://ru.wikipedia.org/wiki/Приветствие
По умолчанию: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5
Заголовки
Использовать по умолчанию
В запрос будут подставлены заголовки по умолчанию. Вот как они выглядят (на примере запроса к https://httpbin.org/get
, заголовок Host
будет меняться в зависимости от URL адреса в запросе)
Host: httpbin.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5
Текущий профиль
Будут подставлены заголовки из текущего ❗→ профиля проекта.
Загрузить из профиля
Необходимо выбрать файл или указать ❗→ переменную содержащую путь до ❗→ профиля из которого будут загружены заголовки для запроса.
Пользовательские настройки
Позволяет самостоятельно указать каждый параметр заголовка запроса.
Заголовки запроса
Первой всегда () указывается строка User-Agent! И только потом все остальные заголовки.
- Каждый заголовок начинается с новой строчки.
- Можно указать статичные значения, свои ❗→ переменные или ❗→ переменные профиля.
Cookie
Можно указать готовые куки или из ❗→ переменной.
Формат: имя=значение
, несколько разделяются с помощью ;
(точка с запятой). Пример:
user=1992103;session=f79fcadd847b80f9df78ba4fb276c867;id=889
Начиная с версии 7.1.6.0 (5.45.0.0) данное поле ввода отображается только в том случае, если вЫключена настройка Использовать CookieContainer (описан далее).
Использовать CookieContainer
CookieContainer позволяет синхронизировать куки как с браузером, так и между отдельными запросами, без необходимости их ручного парсинга и подстановки.
Пример
Проект работает с сайтом используя запросы, но для работы нужно быть авторизованным. Представим, что процесс авторизации очень сложный, чтоб его повторить на запросах, поэтому, для входа на сайт используем браузерный режим.
Затем ❗→ отключаем браузер и начинаем работать с сайтом используя запросы. Включив настройку Использовать CookieContainer куки будут автоматически синхронизированы между браузером и запросами, Вам не надо ничего вручную делать - cookies будут подставлены автоматически. И если при одном из запросов сайт вернёт новое значение для одной или нескольких кук, то эти новые значения будут автоматически синхронизированы. И при выполнении следующего запроса (или при открытии сайта через встроенный браузер) будет использовано обновлённое значение.
Пример Пользовательских настроек
Используя переменные профиля для заголовков и ручную подстановку кук.
Как работать с экшеном: Вкладка “Прокси”
Без прокси
Работа экшена происходит используя реальный ip компьютера\сервера.
Текущий прокси проекта
Используется ❗→ установленный в проекте прокси.
Строка формата
Указываем прокси в формате (можно указать ❗→ переменную):
a) С авторизацией - socks5://логин:пароль@ip:port
или http://логин:пароль@ip:port
b) Без авторизации - socks5://ip:port
или http://ip:port
c) Без указания протокола (по умолчанию будет использован http://)- логин:пароль@ip:port
или ip:port
Другой
Выбираем если необходимо указать детальные настройки прокси. Тип прокси, данные авторизации, адрес и порт. Информацию уточняйте у своего поставщика услуг.
Во всех полях ввода можно использовать переменные.
Если не указан протокол прокси, то по умолчанию будет использоваться http://
Создание экшенов из запросов монитора трафика
Добавлено в ZennoPoster 7.1.5.0 (5.44.0.0)
Готовый HTTP-запрос можно создать прямо из ❗→ Окна Трафика.
- Наводим курсор на нужный запрос и правой кнопкой мыши вызываем контекстное меню.
- Нажимаем Создать действие из запроса.
На холсте проекта появится полностью заполненный экшен HTTP-запроса.
Измените статические значение или замените на перемененные - экшен полностью готов к работе.
Выключение браузера
Если Вы работаете исключительно с помощью запросов, то можно отключить браузер, тем самым сэкономив ресурсы компьютера; сделать это можно либо в ❗→ настройках проекта, либо используя экшен ❗→ Настройки браузера.
Способ передачи запроса
В ZennoPoster есть два метода работы с запросами - сторонняя разработка (стандартный метод, библиотека Chilkat) и собственная (альтернативный метод). Если при работе с HTTP-запросами с использованием стандартного метода у Вас что-то работает не так, то попробуйте переключиться на альтернативный метод.
Изменить спо соб передачи запросов можно в ❗→ настройках программы (глобально для всех проектов) или в ❗→ настройках конкретного проекта.
Пример использования
Узнаем текущий ip адрес, с которого работает проект.
Для этого достаточно сделать GET-запрос по адресу https://api.ipify.org/
, а во вкладке *Прокси выбрать *Текущий прокси проекта.