Реализовать web-proxy на .NET

Антон17 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
22.04.2011

Имеется следущая задача: необходимо реализовать веб-прокси на .NET.

Что это означает:

Прокси должна слушать заданный порт и принимать входящие запросы от клиентов. На каждый запрос клиента инициируется соответствующий запрос на удаленный сайт. Если content-type ответа равен text/html, необходимо изменять все локальные аттрибуты html тегов на локальные, например frame src="http://domain.com/" изменяется на src="http://myproxy.com/?http:%3A%3Adomain.com%3A" итд.

Требования:

1. Прокси должна использовать HttpListener, а не IIS.

2. Это должно быть консольное приложение

3. Для получения удаленного контента должен использоваться HttpWebRequest/HttpWebResponse

4. Максимально возможное количество HTTP-заголовков должны копироваться из исходного запроса

5. Парсинг ответа HttpWebResponse (для замены src,href и так далее) должен проводится "на лету". То есть читаем ответ, тут же его разбираем SAX-парсером и пишем в измененном виде в outputstream, а НЕ читаем ответ в переменную и потом ее разбираем.

6. Должны поддерживаться как GET, так и POST запросы. Куки и другие заголовки клиента передаются как есть.

Писать нужно на .NET, поскольку затем программа будет интегрироваться с другим софтом.

Заявки фрилансеров