Почему WebProxy BypassProxyOnLocal не работает для меня?

Я пытаюсь получить 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 ответа

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

Кредит, где кредит должен: я получил этот необычный совет из этой темы http://www.west-wind.com/weblog/posts/2009/Jan/14/Monitoring-HTTP-Output-with-Fiddler-in-NET-HTTP-Clients-and-WCF-Proxies

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

См. Объяснение на http://www.fiddler2.com/fiddler/help/hookup.asp

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

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

Другие вопросы по тегам