似乎无法让提琴手到 Proxy HttpClient
Can't seem to get fiddler to Proxy HttpClient
我一直在让 fiddler 获取自托管 asp.net 网站 api 的流量时遇到问题。我的情况可能有点不同,因为托管网络 api 的同一个应用程序也在使用它(是的,我们有理由这样做 :))。我们正在使用 HttpClient。以下是我尝试过的方法:
- 添加 HttpClientHandler 并设置代理。
将以下内容添加到 app.config
<system.net>
<defaultProxy>
<proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://localhost:8888"/>
</defaultProxy>
试图从一个单独的 .net 客户端客户端访问 api(认为使用托管它的 api 的同一进程不允许捕获流量因为都是进程内的)。
现在,如果我在本地打开 Web 浏览器或邮递员并点击 api,那么流量将被正确捕获
这是客户端代码:
var handler = new HttpClientHandler();
handler.UseProxy = true;
handler.Proxy = new WebProxy("http://127.0.0.1",8888);
var client = new HttpClient(handler) {BaseAddress = new Uri(new Uri("http://localhost:8085"), "api/companies")};
HttpResponseMessage response;
using (client)
{
response = client.GetAsync(client.BaseAddress).Result;
}
var result = response.Content.ReadAsAsync<IEnumerable<Company>>().Result;
现在理想情况下,我希望能够在 运行 应用程序上打开 fiddler 并捕获流量(即使在生产中)而无需更改源代码。
不幸的是,.NET Framework 被硬编码为绕过本地主机地址的代理(请在此处查看我的功能请求:https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6359204-support-the-loopback-token-in-proxy-bypass-lists)
要解决此问题,请将您的请求 URL 从 http://localhost:8085
更改为 http://localhost.fiddler:8085
,Fiddler 将接收该请求。
我一直在让 fiddler 获取自托管 asp.net 网站 api 的流量时遇到问题。我的情况可能有点不同,因为托管网络 api 的同一个应用程序也在使用它(是的,我们有理由这样做 :))。我们正在使用 HttpClient。以下是我尝试过的方法:
- 添加 HttpClientHandler 并设置代理。
将以下内容添加到 app.config
<system.net> <defaultProxy> <proxy bypassonlocal="False" usesystemdefault="True" proxyaddress="http://localhost:8888"/> </defaultProxy>
试图从一个单独的 .net 客户端客户端访问 api(认为使用托管它的 api 的同一进程不允许捕获流量因为都是进程内的)。
现在,如果我在本地打开 Web 浏览器或邮递员并点击 api,那么流量将被正确捕获
这是客户端代码:
var handler = new HttpClientHandler();
handler.UseProxy = true;
handler.Proxy = new WebProxy("http://127.0.0.1",8888);
var client = new HttpClient(handler) {BaseAddress = new Uri(new Uri("http://localhost:8085"), "api/companies")};
HttpResponseMessage response;
using (client)
{
response = client.GetAsync(client.BaseAddress).Result;
}
var result = response.Content.ReadAsAsync<IEnumerable<Company>>().Result;
现在理想情况下,我希望能够在 运行 应用程序上打开 fiddler 并捕获流量(即使在生产中)而无需更改源代码。
不幸的是,.NET Framework 被硬编码为绕过本地主机地址的代理(请在此处查看我的功能请求:https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6359204-support-the-loopback-token-in-proxy-bypass-lists)
要解决此问题,请将您的请求 URL 从 http://localhost:8085
更改为 http://localhost.fiddler:8085
,Fiddler 将接收该请求。