Я пытаюсь разработать приложение C#, которое перехватит исходящий запрос Http и вернет результат в старую систему. У нас есть устаревшая система, которая делает запрос Http на прекращенный веб-сервис. Мне нужно перехватить входящий запрос и отправить его на новый веб-сервис. Когда ответ возвращается, мне нужно манипулировать им, а затем отправить его в унаследованную систему. Весь код должен находиться на клиентской машине. Я думал, что что-то похожее на прослушиватель http будет работать, но я никуда не денусь, любые предложения были бы очень благодарны.Как перехватить Http-трафик
ответ
Спасибо всем за ваши предложения, вот ответ.
Я использовал Fiddler2 от Эрика Лоуренса, чтобы выступать в качестве прокси для меня. Затем я написал расширение Fiddler, которое перехватило конкретный запрос Http, который меня интересовал, и вуаля.
Поддерживает ли устаревшая система спецификацию прокси-сервера http? Если да, то, вероятно, вы хотите сделать - напишите что-нибудь, действующее как прокси, и укажите на него старую систему.
Я знаю запрос Http, который отправляется, но не имеет доступа к изменению старого кода, из-за чего я думал об улавливании исходящего запроса. – 2009-09-23 10:21:33
Я предполагаю, что проблема в том, что у него нет доступа к серверу на старый URL-адрес веб-службы, поэтому он не сможет размещать там HTTP-модуль. –
Это правильно! – 2009-09-23 10:28:56
Если ваша устаревшая система может использовать прокси-сервер, как предлагает Dav, вы можете использовать что-то вроде Foxy, чтобы выполнить перенаправление. Я не уверен, но я считаю, что какое-то программное обеспечение использует IE для транспорта HTTP, поэтому попробуйте установить прокси-сервер HTTP в IE на клиентской машине?
Если нет, то я считаю, что это сложная проблема, поскольку по существу вы пытаетесь перехватить и изменить трафик TCP/IP, что, по-моему, возможно только с помощью усовершенствованного брандмауэра или маршрутизатора.
Если это выполняется на сервере Windows, вы можете отредактировать файл hosts, чтобы перенаправить запрос на другой сервер, включая тот же хост (localhost), если хотите. Там вы можете иметь промежуточный веб-сервис, переводящий запрос и ответ.
Вы правы, это вариант, хотя я хочу сделать перевод на ПК, а не в Интернете. – 2009-09-23 11:33:15
Ах, так это устаревшее приложение, это не серверное приложение, а клиентское приложение установлено на ПК людей? – Digitalex
Да, это правильно, это старая программа, в которой у нас нет исходного кода, поэтому нам нужно подменять приложение, думая, что оно связано с исходным веб-сервисом. – 2009-09-23 12:13:32
tcpmon - это утилита с открытым исходным кодом для мониторинга данных, передаваемых по TCP-соединению. tcpmon используется, помещая его между клиентом и сервером. Клиент подключается к tcpmon, а tcpmon пересылает данные на сервер вместе с отображением его в графическом интерфейсе. https://tcpmon.dev.java.net/
- 1. Как перехватить нажатие клавиши?
- 2. Как перехватить исключение Interop?
- 3. Как перехватить запрос заканчивается?
- 4. Как «перехватить» методы?
- 5. Как перехватить/изменить the_category?
- 6. Как перехватить событие NotifyPropertyChange
- 7. Как перехватить нажатие клавиши?
- 8. Как перехватить фильтры Linq
- 9. Как перехватить исключение преобразования?
- 10. Как перехватить запрос SELECT
- 11. Как перехватить Cmd + Q
- 12. Как перехватить ошибки Selenium?
- 13. Как перехватить вызовы PDO?
- 14. Как перехватить операции EF?
- 15. Как перехватить вход IRB?
- 16. Как перехватить обещание?
- 17. РИА: как перехватить данные
- 18. Как перехватить вызов
- 19. Как перехватить конструктор
- 20. Как перехватить поворот iPhone
- 21. Как перехватить событие onclick
- 22. Как перехватить статический курьер?
- 23. Как перехватить MIDI-сообщения?
- 24. Как перехватить пароли Laravel?
- 25. Как перехватить веб-запрос
- 26. Как перехватить соединение с WebSocket?
- 27. Как перехватить жизненный цикл Thread?
- 28. Javascript: Как перехватить изменение window.location
- 29. Как перехватить форму отправляет надежно?
- 30. Как перехватить андроид снимок экрана
Сладкое решение! –
Я был бы в курсе, как вы это делаете в чистом C#, а не с помощью каких-либо сторонних инструментов. Но классное решение. – 2013-06-21 11:39:15