Перейти к основному содержимому

HTTP-запрос

🔗 Оригинальная страница — Источник данного материала


Описание​

С помощью этого экшена можно создать любой тип HTTP-запроса:

  • Put — полностью обновляет информацию;
  • Delete — удаляет записи;
  • Head — получает только заголовки ответа, без содержимого;
  • Options — запрашивает информацию о поддерживаемых методах;
  • Patch — частично обновляет записи;
  • Trace — диагностический запрос для отладки.

image-20210529-152542

А для запросов GET и POST есть отдельные экшены.

Как добавить экшен в проект?​

Через контекстное меню: Добавить действие → HTTP → HTTP-запрос

image-20200810-110205


Вкладка «Основные»​

image-20210529-152902

Тип запроса​

Выбираем необходимый запрос из списка.

image-20210529-152929

URL.​

Целевой адрес сайта (ссылка), по которому будет отправлен запрос. Можно использовать переменную.

Referer​

Заголовок запроса Referer используется для указания URL-адрес, с которого пользователь пришел на текущую страницу. Он помогает анализировать трафик и узнавать, с какого ресурса переходят чаще всего.

Заголовок Referer может раскрыть информацию об истории посещённых страниц

Это может привести к нарушению приватности.

Кодировка​

Выбираем кодировку для запроса.

Таймаут​

Максимальное время ожидания ответа от сайта в секундах.

При достижении установленного времени, действие будет завершено ошибкой и выйдет по красной ветке.

Можно использовать макросы переменных.


Данные​

Основное содержимое запроса.

Тип данных​

Определяем данные для текущего запроса.

Выбранный тип передаётся как заголовок Content-Type.

urlencoded​

Content-Type: application/x-www-form-urlencoded

Стоит использовать, когда на сервер отсылается текстовая информация.

В поле Данные она указывается в формате: имяпараметра1=значение1&имяпараметра2=значение2

multipart​

Content-Type: multipart/form-data

Этот тип стоит выбирать при отправке в запросе двоичных данных (файлов) на сервер.

Другой​

Вы можете указать данный тип данных, если описанные выше не подходят.

Например, для взаимодействия с CapMonster Cloud API требуется отправлять данные POST запросом в формате JSON. Для этого выбираем Другой и в появившемся поле пишем: application/json

image-20210529-144909


Загружать​

Только содержимое.​

В переменную будет сохранено только тело ответа.

Только заголовки.​

Сохранятся только заголовки.

Заголовки и содержимое.​

В переменную сохранятся и заголовок ответа, и его тело, разделенные двумя пустыми строками.

Как файл.​

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

По умолчанию файлы скачиваются в папку Trash в директории с программой.

Путь может выглядеть так:
C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.4.0.0\Progs\Trash\googlelogo_color_92x30dp.png

Изменить его можно в настройках, но только глобально для всех проектов.

Как файл + заголовки.​

В переменную сохранятся заголовки ответа и путь к скачанному файлу.


Положить в переменную.​

Здесь надо выбрать (или создать новую) переменную, в которую будет сохранён результат запроса.


Вкладка «Дополнительно»​

image-20210525-142622

Редирект.​

Используется для установки перенаправления. Если ответ на запрос будет содержать код редиректа, то ZennoDroid перейдет к следующей странице, используя заголовок Location.

Здесь мы цифрами указываем максимальное количество переходов. К примеру, 0 — остаться на исходной странице, 5 — количество переходов до конечного URL.

Использовать оригинальный URL.​

Когда эта опция включена, кодирование URL из вкладки «Основные» будет отменено. Пример:

  • URL по умолчанию (с кодированием):
    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
  • Оригинальный URL:
    https://ru.wikipedia.org/wiki/Приветствие

Заголовки.​

Использовать по умолчанию.​

В запрос будут подставлены заголовки по умолчанию. Заголовок Host меняется в зависимости от адреса в запросе.

Пример ответа при запросе https://httpbin.org/get.
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

Текущий профиль.​

Будут подставлены заголовки из текущего профиля проекта.

Загрузить из профиля.​

Необходимо выбрать файл или указать переменную, содержащую путь до профиля, из которого будут загружены заголовки для запроса.

Пользовательские настройки.​

image-20210529-091044

Позволяет самостоятельно указать каждый параметр заголовка, следуя правилам:

  • ⚠️ Первой всегда указывается строка User-Agent! И только потом все остальные заголовки.
  • Каждый заголовок начинается с новой строчки.
  • Можно указать статичные значения, свои переменные или переменные профиля.

Использовать CookieContainer.​

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

Пример

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

После авторизации отключаем браузер и начинаем работать с запросами. С включенной опцией Использовать CookieContainer куки будут автоматически синхронизированы между браузером и запросами, их не придется подставлять вручную.

Если при одном из запросов сайт вернет новое значение кук, то оно автоматически синхронизируется с браузером и будет использовано в дальнейшем.

Данное поле ввода отображается только при отключении прошлой опции.

image-20210525-151513

Можно указать готовые куки или взять из переменной.

Формат: имя=значение, несколько значений разделяются через ;
Пример: user=1992103;session=f79fcadd847b80f9df78ba4fb276c867;id=889


Вкладка «Прокси»​

image-20210529-084701

Без прокси​

Экшен будет работать через реальный IP компьютера или сервера.

Текущий прокси проекта​

Используется установленный в проекте прокси.

Строка формата​

image-20210529-084950

Указываем прокси в формате (можно указать переменную):

  • С авторизацией — socks5://логин:пароль@ip:port или http://логин:пароль@ip:port
  • Без авторизации — socks5://ip:port или http://ip:port
  • Без указания протокола (по умолчанию http://) — логин:пароль@ip:port или ip:port

Другой​

Выбираем в том случае, если нужно указать детальные настройки прокси.

image-20210529-085221

Тип прокси, данные авторизации, адрес и порт уточняйте у поставщика услуг.

Во всех полях можно использовать переменные.

ПО УМОЛЧАНИЮ ИСПОЛЬЗУЕТСЯ HTTP://

Если не указывать протокол прокси.


Создание экшенов из монитора трафика​

Добавлено в ZennoPoster 7.1.5.0 (5.44.0.0)

Готовый HTTP-запрос можно создать прямо из Окна Трафика.

image-20200810-163348

  1. Наводим курсор на нужный запрос и правой кнопкой мыши вызываем контекстное меню.
  2. Нажимаем Создать действие из запроса.

На холсте проекта появится полностью заполненный экшен HTTP-запроса:

image-20200810-163642image-20200810-163654

Измените статические значение или замените на перемененные — теперь экшен полностью готов к работе.


Вспомогательные настройки​

Выключение браузера​

Если вы работаете исключительно на запросах, то можно отключить браузер, тем самым сэкономив ресурсы компьютера. Сделать это можно через Настройки проекта или в экшене Настройки браузера.

image-20200810-112931

Способ передачи запроса​

В ZennoPoster есть два метода работы с запросами:

  • Стандартный. Стоит по умолчанию (библиотека Chilkat).
  • Альтернативный. Наша собственная разработка.

Если при работе с HTTP-запросами что-то работает неправильно, то попробуйте переключиться на альтернативный метод.
Сделать это можно через Настройки → Выполнение → Использовать альтернативный способ передачи HTTP-запросов.

image-20200808-214404


Пример использования​

Мы хотим загрузить файл в облако от Mail.

image-20200812-201715

  1. Выбираем файл.
  2. Добавляем экшен HTTP-запрос.
  3. Указываем метод передачи Options.
  4. Заполняем поля и вкладки кубика.
  5. Передаём файл на сервер.

Полезные ссылки​