LINUX.ORG.RU

как перехватывать post запросы из своего приложения ?

 ,


0

2

Есть приложение, которое отправляет post запросы. Хочу отлаживать его без инета, то есть в другом приложении перехватить запрос и прислать ему ответ. Как можно подобное реализовать ?

Ответ на: комментарий от anonymous

Я тоже об этом подумал (сам бы я так, делать, впрочем, не стал, я бы запустил ноду), но это слишком по-кулцхакерски, мне кажется, что здесь это не релевантно.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)

Запустить HTTP сервер на локальном порту, обрабатывать запросы и посылать ответы. Часто используемым приемом в таких тестовых серверах является отправка желаемого ответа в самом запросе. Кстати не обязательно делать это в другом приложении - можно и в том же самом (если это тесты или специальная тестовая сборка).

annulen ★★★★★
()
Ответ на: комментарий от annulen

Сделал прокси-сервер, а подскажите как правильно сформировать byte[] массив-ответ от сервака. Так как сам сервак не доступен, то нужно это сделать руками. Далее я это пихаю в socket клиента. Нужно в ответ засунуть post body якобы от серваку. Как это сделать, то есть что по каким смещениям в этот массив пихнуть надо.

user2132
() автор топика
Ответ на: комментарий от user2132

Какой прокси, какие смещения? Просто берешь и обрабатываешь POST запрос своей любимой либой. Хотя это с++ и судя по выражениям типа «byte[]» ты в нем не очень шаришь, так что лучше на скриптовом языке напиши сервер, это будет проще, чем если ты сейчас начнешь какой-нибудь boost asio ковырять

annulen ★★★★★
()
Ответ на: комментарий от annulen

Хотел бы уточнить кое-что, если не сложно. Допустим я поднял условный Apache, как пример широко распространенного HTTP-сервера. Правильно ли я понимаю, что через конфигурационный файл Apache'а или каким-то другим способом можно настроить его таким образом, чтобы он отвечал определенным образом на определенные запросы?

Мимо проходил

Nibbler
()
Ответ на: комментарий от Nibbler

Апач нужен если ты, например, на пхп писать свой обработчик собрался, а так он на фиг не упёрся

annulen ★★★★★
()
Ответ на: комментарий от Nibbler

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

WitcherGeralt ★★
()
Ответ на: комментарий от annulen

Разобрался с серваком, но еще вопрос. В проге есть посты на localhost:6671 и посты в инет, поставив прослушку на 8888 порт я ловлю тока посты в инет, а как сделать проброс запросов с 6671 на 8888 порт, чтобы их обрабатывать тоже.

user2132
() автор топика
Ответ на: комментарий от user2132

Можно файрволом, а можно слушать оба адреса

annulen ★★★★★
()
Ответ на: комментарий от ox55ff

А как сделать чтобы это не грузило комп, сделал с использованием TcpListener, но там прога висит в while(1) и грузит комп, из-за этого софт работы с com портом начинает таймауты кидать.

user2132
() автор топика
Ответ на: комментарий от user2132

Это c#? У тебя в тегах был c++. Тот класс из qt, который я рекомендовал работает асинхронно. Подписываешься на сигналы и пишешь обработчики.

На счёт твоего while(1). Если ты гоняешь пустой цикл, то да, комп будет работать в качестве печки. Делай или блокирующую или асинхронную модель.

ox55ff ★★★★★
()

раньше использовали софт по типу чарьлза

YaEstCarb
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.