我正在尝试使用 Fiddler 帮助某人解决
Invoke-RestMethod
调用 ASP.NET WebAPI 的问题。不幸的是,当我在 PowerShell 中调用 Invoke-RestMethod
时,Fiddler 并未拦截 HTTP 通信。
当我使用 Internet Explorer 浏览 ASP.NET 网站的根目录(该网站是同一应用程序的一部分)时,Fiddler 按预期拦截流量。
谁能解释一下为什么 Fiddler 不通过 PowerShell 捕获 HTTP 流量,以及如何解决这个问题?
Fiddler 实际上是通过代理工作的,运行时会自动在 IE 中设置代理设置。您可以通过启动 fiddler 然后检查 Internet 选项 > 连接下的“Lan 设置”来检查这一点。
Invoke-RestMethod
有一个 -Proxy
参数,您可以使用它来指向 Fiddler 的代理。我认为默认是 127.0.0.1:8888 :
Invoke-RestMethod -Proxy 'http://127.0.0.1:8888' ....
编辑:添加屏幕截图以确认上面的答案。
我在安装 NPM 软件包时遇到了类似的问题(使用 Powershell 和 Fiddler2)。
在将 Fiddler 设置为反向代理之后然后使用此处答案中提到的命令(感谢 JNK),它起作用了。
以下分步说明:
就我而言,是:
if (oSession.host.toLowerCase() == "127.0.0.1:8888") oSession.host = "127.0.0.1:80";
PS F:> npm install yo -g-proxy 'http://127.0.0.1:8888'
唯一的解决方案是使用
powershll core v7.x (tried v7.4)
并且效果很好 Fiddler 可以拦截 PowerShell Web 请求。