Использование C # WebClient с прокси-сервером - никаких запросов к прокси-серверу?

StackOverflow https://stackoverflow.com/questions/7830939

Вопрос

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

В основном мы делаем это:

родовое слово

Прокси-сервер - это тот, который мы настроили сами с помощью FreeProxy .

Я включил ведение журнала и на машине, на которой я тестирую, и могу подтвердить, что запросы к прокси-серверу выполняются при его использовании в Firefox.

Для прокси-сервера аутентификация не требуется, за исключением того, что IP-адрес должен находиться в нашем офисе (что, как я полагаю, не является проблемой).

Однако в нашем фоновом процессе я, похоже, не использую прокси, когда использую веб-клиент:

родовое слово

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

Похоже, информация возвращается нормально, но не через наш прокси.

Что-то мне не хватает при использовании прокси с генеральным кодом кода?

редактировать: подробнее. Если мы отключим прокси-сервис на сервере, то получим исключение, которое не можем подключиться. Похоже, что веб-клиент пытается связаться с прокси-сервером, но этот трафик на самом деле не проходит через прокси.

родовое слово
Это было полезно?

Решение

Оказывается, FreeProxy не принимает трафик HTTPS.

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

Перешел на использование пакета Burp в качестве нашего прокси, поскольку он может принимать HTTPS.

http://portswigger.net/burp/

Другие советы

Вам необходимо либо настроить окна для использования прокси-сервера по умолчанию, либо установить прокси вручную в коде, см. http://msdn.microsoft.com/en-us/library/system.net.webclient.proxy (v= VS.100) .aspx

Насколько я могу судить, вы правильно используете класс WebClient.Я вижу следующий запрос ...

родовое слово

в Fiddler, запущенном на моем локальном компьютере.Теперь, если я выключу Fiddler, я получу WebException:

родовое слово

С внутренним SocketException:

родовое слово

Итак, с учетом сказанного, я предполагаю, что ваш прокси работает так, как задумано, но он просто не регистрирует исходящий HTTP-запрос.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top