我正在尝试获取从C# .NET到本地地址(localhost:3000)的HTTP调用,以使用我设置的代理(这样我就可以通过fiddler)。如果我将目标地址指向非本地地址,则使用下面的WebProxy方法有效,但是我需要将其指向我拥有的本地web服务器(位于localhost:3000),并且当我这样做时,请求不会通过代理。
我已经包含了"proxyObject.BypassProxyOnLocal = false“。这应该能让它工作,不是吗?有什么建议吗?如何强制请求通过针对本地地址的http调用的WebProxy?
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();谢谢
发布于 2011-08-18 13:57:08
我只需在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#596591得到了这个不同寻常的提示
工作正常!
发布于 2011-04-29 19:49:21
请参阅https://docs.telerik.com/fiddler/observe-traffic/troubleshooting/notraffictolocalhost上的说明
Fiddler和.NET框架被硬编码为不通过任何代理发送对本地主机的请求,并且作为代理,
将不会接收此类流量。最简单的解决方法是使用您的机器名作为主机名,而不是Localhost或127.0.0.1。例如,与其访问http://localhost:8081/mytestpage.aspx,不如访问http://machinename:8081/mytestpage.aspx.
https://stackoverflow.com/questions/2045628
复制相似问题