почему WebProxy BypassProxyOnLocal не работает для меня? - PullRequest
3 голосов
/ 12 января 2010

Я пытаюсь получить HTTP-вызовы из C # .NET на локальный адрес (localhost: 3000), чтобы использовать установленный мной прокси (чтобы я мог пройти через fiddler). Использование описанного ниже подхода WebProxy работает, если я указываю целевой URL на нелокальный адрес, однако мне нужно указать его на локальном веб-сервере, который у меня есть (на localhost: 3000), и когда я делаю это, запрос не собирается через прокси.

Я включил "proxyObject.BypassProxyOnLocal = false". Это должно заставить его работать нет? Любые предложения о том, как заставить запрос пройти через WebProxy для http-вызовов, направленных на локальный адрес?

    WebProxy proxyObject = new WebProxy("http://localhost:8888/", false);
    proxyObject.Credentials = new NetworkCredential(); 
    proxyObject.BypassProxyOnLocal = false;
    WebRequest.DefaultWebProxy = proxyObject;

    var request = (HttpWebRequest)WebRequest.Create(targetUri);

    // I also included this line as a double check
    request.Proxy = proxyObject;

Последующие звонки не проходят через прокси-сервер, например, когда я делаю:

 var res = (HttpWebResponse)req.GetResponse();

спасибо

Ответы [ 3 ]

7 голосов
/ 18 августа 2011

Я могу обойти это, просто добавив «точку» к localhost, поэтому вместо доступа к «localhost» я пытаюсь получить доступ к «localhost». (обратите внимание на точку в конце имени хоста)

Кредит, причитающийся кредит: Я получил этот необычный совет от этой темы -Прокси # 596591

Работает отлично!

3 голосов
/ 29 апреля 2011

См. Объяснение по http://www.fiddler2.com/fiddler/help/hookup.asp#Q-LocalTraffic

Internet Explorer и .NET Framework жестко закодированы, чтобы не отправлять запросы на Localhost через какие-либо прокси, и в качестве прокси-сервера Fiddler не будет получать такой трафик.

Самый простой обходной путь - использовать имя компьютера в качестве имени хоста вместо Localhost или 127.0.0.1. Так, например, вместо того, чтобы нажимать http://localhost:8081/mytestpage.aspx, вместо посещения http://machinename:8081/mytestpage.aspx.

0 голосов
/ 23 января 2012
...