Как я могу захватить URL или HTTP-запрос и перенаправить его с помощью C # - PullRequest
1 голос
/ 10 мая 2011

Привет всем и спасибо за чтение.

Для средств QA я хочу настроить приложение, которое могло бы обрабатывать и управлять запросами и данными, отправляемыми через Интернет из определенного запущенного приложения.

В частности, я хочу иметь возможность перенаправить несколько URL-адресов, а не все, для работы через «прокси-приложение», поэтому, если у меня есть приложение, которое запрашивает http://www.google.com И http://www.google.com/search, Я бы хотел перенаправить только второй, указывающий на относительный путь /search.

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

Заранее спасибо.

Обновление: На самом деле мне нужно было построитьприложение, которое может быть каким-то образом «присоединено» и перехватывать существующее соединение между уже разработанным приложением и сервером данных, чтобы оно могло прослушивать и изменять данные, передаваемые через это соединение.Я знаю, что это трудно сделать на языке высокого уровня, таком как c #, но я просто хотел убедиться, что

1 Ответ

2 голосов
/ 10 мая 2011

Я не уверен, что правильно следую за вами ... вы хотите перенаправить определенные URL-адреса в "прокси-приложение" ???Не прокси-сервер?

Если вы хотите перенаправить на прокси-сервер, вы можете сделать это:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com/search/");
request.proxy = new WebProxy("http://proxyurl");
HttpWebResponse myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();

Или без прокси-сервера:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com/");
HttpWebResponse myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();

Вы можете позволить «прокси-приложению» обслуживать URL, но это совсем другая история.В этом случае вам понадобится какой-то метод связи между вашим приложением и другим приложением.Ваше приложение может подключаться к другому приложению через TCP, через WCF или через Pipes .Вы отправляете URL-адрес другому приложению, и оно обслуживает его.

Затем следует другой фрагмент: прокси-приложение обслуживает страницу обратно в ваше приложение для обработки запросов или оно обслуживает ее клиенту?Так как же клиент взаимодействует с вашим приложением для обработки запросов?

Обновление Похоже, вы ищете что-то вроде Fiddler :

Fiddler позволяет вам проверять весь HTTP-трафик, устанавливать точки останова и «возиться» с входящими или исходящими данными.Fiddler намного проще в использовании, чем NetMon или другие сетевые отладчики, поскольку он предоставляет только HTTP-трафик и делает это в удобном для пользователя формате.

В общем, вы можете захотеть изучить перехват трафика.

...