【发布时间】:2013-01-11 18:18:05
【问题描述】:
我希望能够通过上游代理重定向来自提琴手代码的 http 请求,我希望能够在运行时指定。
我查看了FiddlerApplication 函数,没有看到任何适合的内容,而且我在文档中也没有找到任何匹配的内容(除了您可能指定启动标志以使用系统的代理作为上游代理)。
在运行时指定/更改提琴手核心代理的最佳方法是什么?
【问题讨论】:
标签: c# fiddler fiddlercore
我希望能够通过上游代理重定向来自提琴手代码的 http 请求,我希望能够在运行时指定。
我查看了FiddlerApplication 函数,没有看到任何适合的内容,而且我在文档中也没有找到任何匹配的内容(除了您可能指定启动标志以使用系统的代理作为上游代理)。
在运行时指定/更改提琴手核心代理的最佳方法是什么?
【问题讨论】:
标签: c# fiddler fiddlercore
如果您想将每个请求发送到代理,并且该代理不是系统的默认代理:在发送每个请求之前,请在 Session 上指定 X-OverrideGateway 标志。在您的 BeforeRequest 处理程序中,添加以下行:
oSession["X-OverrideGateway"] = "someProxy:1234";
-埃里克
【讨论】:
[Fiddler] The connection to 'blahblah.com' failed. <br />System.IO.InvalidDataException SOCKS gateway failed: Gateway returned error 0x5b-&#39;request rejected or failed&#39;我添加了oSession["X-OverrideGateway"] = "socks=192.168.1.12:2040";这是一个socks5代理。
正如 EricLaw 在他的回答中所说,您必须在 Session 上指定 X-OverrideGateway 标志,尽管如果您想对上游代理进行基本 HTTP 身份验证,您可以通过添加 Proxy-Authorization 标头来设置凭据像这样到你的 BeforeRequest 处理程序中的会话
string userCredentials = string.Format("{0}:{1}", "user", "password");
string base64UserCredentials = Convert.ToBase64String(Encoding.UTF8.GetBytes(userCredentials));
oSession.RequestHeaders["Proxy-Authorization"] = "Basic " + base64UserCredentials;
这是 HTTP 标头字段的列表 https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
【讨论】: