Как отправить post запрос из браузера
Перейти к содержимому

Как отправить post запрос из браузера

  • автор:

Как делать HTTP/HTTPS POST или GET запросы в программе (базовая информация)

В ответ на GET или POST запрос сервер может вернуть контент (когда вы открываете сайт в браузере, происходят GET/POST запросы для получения контента от сервера/сайта).

Примечание: Если в ссылке присутствует символ #, то все, что стоит после него, не будет учитываться при выполнении POST или GET запроса. Информация в URL, что стоит после символа решетки учитывается только WEB браузером.

При формировании POST запроса нужно правильно оформить POST Данные. Смотрите оформление POST данных для библиотеки Clever Internet Suite (CIS) .

По умолчанию в инструментах программы используются GET запросы.

Для парсинга документов с использованием POST запросов во вкладке “Контент” или “Ссылки” пользуйтесь таким методом:
Как парсить во вкладке «Контент» или «Ссылки» с использованием POST-запросов

Для создания дополнительных GET или POST запросов из шаблона вывода при парсинге во вкладке “Контент” (с целью подгрузки дополнительных данных или отправки данных) используйте макросы:
GETMORECONTENT
PHP_SCRIPT

Для того, чтобы узнать нужную информацию о GET или POST запросах пользуйтесь инструментом браузера Firefox под названием “Монитор сети” (shift+ctrl+e в Firefox). Это нужно, когда вы парсите сайты, где данные подгружаются скриптами WEB страницы.

Запросы в мониторе сети Firefox будут появляться в режиме реального времени в виде списка (например, когда вы загрузили WEB-страницу или кликнули по какой-либо кнопке WEB страницы для подгрузки данных, например: “узнать цену” или “отправить комментарий”.

Монитор сети Firefox

После того, как вы узнали данные о запросе (URL, POST data, HTTP Headers) вы можете воссоздать нужные запросы в Content Downloader с помощью нужных инструментов:

Как парсить во вкладке «Контент» или «Ссылки» с использованием POST-запросов
– Заголовки запроса (custom headers) и POST данные устанавливаются в окне настроек HTTP запросов программы (ctrl+h)

Для выполнения большинства GET запросов достаточно знать и указать его URL. Если запросы не выполняются, установите и заголовки запроса.

Для выполнения большинства POST запросов достаточно знать и указать URL и POST данные. Если запросы не выполняются, установите и заголовки запроса.

Возможные нюансы

Если ответ на запрос пришел в виде GZIP и автоматически не распаковался

нераспакованный GZip

То уберите строку с gzip из custom headers

Accept-Encoding: gzip, deflate, br

Accept-Encoding: gzip, deflate, br

При выполнении POST запроса обратите внимание на параметр “применять percent-encoding для отправляемых POST данных”

Content Downloader

Если вы вставляете POST данные в percent-encoding (%2A…), то этот параметр нужно отключить.

(оценок: 3, средний балл: 3.67)

POST-запрос

POST-запрос по своей структуре сложнее GET-запроса : он имеет заголовок и тело. Передать POST-запрос через адресную строку браузера нельзя, требуется специализированный механизм отправки запросов.

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

Кроме того, HTTP-POST запросы не имеют ограничений на тип передаваемых параметров. Возможность использования POST-запросов будет полезна при интеграции системы ELMA с простыми веб-приложениями в случае, если требуется передавать в систему ELMA большой объем данных или файлы.

Простейший способ отправить POST-запрос — использовать HTML форму, для которой указан метод передачи данных «post».

ID Партнера:

Отправка данной формы приведет к запуску бизнес-процесса с токеном 995ea844-74a8-413b-96be-bc92462eff85 на сервере ELMA, расположенном на http://elma.someorg.ru. При этом бизнес-процесс будет запущен с определенными стартовыми параметрами. Перед началом выполнения процесса в его контекст будет загружено пять переменных: Name, Surname, Fathername, Age, Partner.

Возможность запуска бизнес-процессов при помощи POST-запроса имеется только при условии, что процесс был опубликован с корректно сформированным токеном и установленными флажками Запуск из внешних систем и Веб-запрос (POST) в блоке Варианты запуска процесса (рис. 2).

HTTP-запросы в браузере — HTTP API

Проще всего увидеть использование HTTP API прямо в браузере. Для удобства разработки и тестирования браузеры включают в себя панель разработчика — с ее помощью можно полностью проанализировать страницу, происходящие внутри процессы и HTTP-запросы.

В этом уроке мы обсудим, как работать с этой панелью и узнавать полезную информацию.

Чтобы открыть панель разработчика у себя в браузере, воспользуйтесь статьей . В этом курсе мы будем пользоваться панелью браузера Chrome:

Остальные браузеры работают почти идентично, поэтому будет несложно повторять то же самое в других браузерах.

Chrome DevTools

Здесь нас интересует вкладка Network. На ней отображаются все запросы, которые выполняет браузер в процессе загрузки страницы. Также здесь показаны картинки, шрифты, файлы стилей, JavaScript и HTML самой страницы:

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

В этой же вкладке появляются запросы к HTTP API, которые выполняются на странице, использующей API.

Чтобы отделить запросы к HTTP API от всего остального, на вкладке Network нужно нажать кнопку Fetch/XHR. Тогда в списке загружаемых ресурсов останутся ресурсы с типом xhr. Это и есть запросы к HTTP API.

Возьмем для примера форму входа. Когда пользователь авторизуется на сайте, то сайт выполняет запрос (или несколько запросов) к API. Можете самостоятельно проверить, как это работает:

  1. Перейдите на сайт https://frontend-chat-ru.hexlet.app/
  2. Откройте панель разработчика, перейдите на вкладку Network и нажмите Fetch/XHR
  3. Введите данные для входа: имя admin и пароль admin

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Отправка POST-запроса в JavaScript как отправка формы

Когда будет речь о перенаправлении браузера на другую страницу, одним из распространенных способов является использование GET-запроса. Он выглядит примерно так:

document.location.href = 'http://example.com/q=a';

Однако, в некоторых случаях, ресурс, к которому происходит обращение, может корректно отвечать только на POST-запросы. Если мы не генерируем такой запрос динамически, то можем использовать HTML-форму следующего вида:

А затем просто отправить эту форму из DOM. Но что если мы хотим использовать JavaScript для отправки такого запроса? Как выглядит код, который позволяет выполнить что-то вроде этого:

post_to_url('http://example.com/', );

Нужно учесть, что требуется решение, которое изменяет текущий URL браузера, аналогично отправке формы. Если это возможно с использованием XMLHttpRequest, то это не очевидно. Это не должно быть асинхронным и использовать XML, поэтому Ajax здесь не подходит.

Лучший кросс-браузерный подход предполагает создание формы с помощью JavaScript, добавление ее в DOM, а затем ее отправку. Вот как это выглядит:

function post_to_url(path, params) < var form = document.createElement('form'); form.method = 'POST'; form.action = path; for(let key in params) < if(params.hasOwnProperty(key)) < var hiddenField = document.createElement('input'); hiddenField.type = 'hidden'; hiddenField.name = key; hiddenField.value = params[key]; form.appendChild(hiddenField); >> document.body.appendChild(form); form.submit(); >

В этом коде создается новая форма с указанным путем и методом POST. Затем, для каждого ключа в переданном параметре, создается новое скрытое поле ввода и добавляется в форму. После этого форма добавляется в тело документа и отправляется. Именно так можно реализовать POST-запрос, похожий на отправку формы, с использованием JavaScript.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *