2009-09-23 12 views
4

Я пытаюсь разработать приложение C#, которое перехватит исходящий запрос Http и вернет результат в старую систему. У нас есть устаревшая система, которая делает запрос Http на прекращенный веб-сервис. Мне нужно перехватить входящий запрос и отправить его на новый веб-сервис. Когда ответ возвращается, мне нужно манипулировать им, а затем отправить его в унаследованную систему. Весь код должен находиться на клиентской машине. Я думал, что что-то похожее на прослушиватель http будет работать, но я никуда не денусь, любые предложения были бы очень благодарны.Как перехватить Http-трафик

ответ

4

Спасибо всем за ваши предложения, вот ответ.

Я использовал Fiddler2 от Эрика Лоуренса, чтобы выступать в качестве прокси для меня. Затем я написал расширение Fiddler, которое перехватило конкретный запрос Http, который меня интересовал, и вуаля.

+0

Сладкое решение! –

+1

Я был бы в курсе, как вы это делаете в чистом C#, а не с помощью каких-либо сторонних инструментов. Но классное решение. – 2013-06-21 11:39:15

1

Поддерживает ли устаревшая система спецификацию прокси-сервера http? Если да, то, вероятно, вы хотите сделать - напишите что-нибудь, действующее как прокси, и укажите на него старую систему.

+0

Я знаю запрос Http, который отправляется, но не имеет доступа к изменению старого кода, из-за чего я думал об улавливании исходящего запроса. – 2009-09-23 10:21:33

-2
+0

Я предполагаю, что проблема в том, что у него нет доступа к серверу на старый URL-адрес веб-службы, поэтому он не сможет размещать там HTTP-модуль. –

+0

Это правильно! – 2009-09-23 10:28:56

1

Если ваша устаревшая система может использовать прокси-сервер, как предлагает Dav, вы можете использовать что-то вроде Foxy, чтобы выполнить перенаправление. Я не уверен, но я считаю, что какое-то программное обеспечение использует IE для транспорта HTTP, поэтому попробуйте установить прокси-сервер HTTP в IE на клиентской машине?

Если нет, то я считаю, что это сложная проблема, поскольку по существу вы пытаетесь перехватить и изменить трафик TCP/IP, что, по-моему, возможно только с помощью усовершенствованного брандмауэра или маршрутизатора.

2

Если это выполняется на сервере Windows, вы можете отредактировать файл hosts, чтобы перенаправить запрос на другой сервер, включая тот же хост (localhost), если хотите. Там вы можете иметь промежуточный веб-сервис, переводящий запрос и ответ.

+0

Вы правы, это вариант, хотя я хочу сделать перевод на ПК, а не в Интернете. – 2009-09-23 11:33:15

+0

Ах, так это устаревшее приложение, это не серверное приложение, а клиентское приложение установлено на ПК людей? – Digitalex

+0

Да, это правильно, это старая программа, в которой у нас нет исходного кода, поэтому нам нужно подменять приложение, думая, что оно связано с исходным веб-сервисом. – 2009-09-23 12:13:32

0

tcpmon - это утилита с открытым исходным кодом для мониторинга данных, передаваемых по TCP-соединению. tcpmon используется, помещая его между клиентом и сервером. Клиент подключается к tcpmon, а tcpmon пересылает данные на сервер вместе с отображением его в графическом интерфейсе. https://tcpmon.dev.java.net/

Смежные вопросы