HttpWebRequest один прокси и один не - PullRequest
5 голосов
/ 15 апреля 2009

Как мне прокси мои соединения? я хочу 3 объекта HttpWebRequest по умолчанию, которые не будут проходить через прокси, и еще 3, которые делают. Должен ли я сделать WebRequestObject.Proxy = myProxy; на объектах я хочу использовать прокси и ничего не делать на 3 объектах я не делаю? также объекты будут инициализированы в неизвестном порядке, поэтому у меня может быть 2 нет, 2 - прокси, 3 - нет и финал -. Это просто пишет .Proxy = myProxy?

Ответы [ 3 ]

10 голосов
/ 15 апреля 2009

Для запросов, требующих прокси, да, это будет работать нормально:

request.Proxy = myProxy;

Для запросов, которые хотят обойти прокси, используйте:

request.Proxy = System.Net.GlobalProxySelection.GetEmptyWebProxy;

Если вы хотите использовать прокси-сервер IE по умолчанию (или если вы установили прокси-сервер по умолчанию в своем app / web.config), просто не устанавливайте прокси-сервер или установите его в null:

request.Proxy = null;

Подробнее о возможных значениях HttpWebRequest.Proxy здесь и GetEmptyWebProxy здесь .

3 голосов
/ 17 июля 2009

System.Net.GlobalProxySelection.GetEmptyWebProxy теперь устарела.

Я попал в такую ​​ситуацию

    private static void SetProxy(HttpWebRequest request)
    {
        if (AppConstants.UseProxyCredentials)
        {
            //request.Proxy = available in System.Net configuration settings
            request.Proxy.Credentials = Credentials.GetProxyCredentials();
        }
        else
        {
            request.Proxy = null;
            //request.Proxy.Credentials = n/a
        }
    }

С подробностями прокси в web.config:

<system.net>
  <defaultProxy>
    <proxy
      autoDetect="False"
      bypassonlocal="True"
      scriptLocation="http://www.proxyscript..."
      proxyaddress="http://proxyurl..." />
  </defaultProxy>
</system.net>
<system.web>
2 голосов
/ 15 апреля 2009

Да, вы бы создали новый прокси-объект для каждого свойства по запросу, который вы хотите проксировать, и просто оставьте его пустым для тех, которые вы сделали. Для тех, кого вы не установите, они будут использовать значения прокси по умолчанию в конфигурации system.net в вашем app.config.

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