Fiddler不拦截PowerShell Web请求

ar7v8xwq  于 2023-01-13  发布在  Shell
关注(0)|答案(3)|浏览(158)

我尝试使用Fiddler帮助某人解决Invoke-RestMethod调用ASP.NET WebAPI的问题。不幸的是,当我在PowerShell中调用Invoke-RestMethod时,Fiddler没有拦截HTTP通信。
当我使用Internet Explorer浏览ASP.NET网站的根目录时,它是同一应用程序的一部分,Fiddler按预期拦截了流量。
有人能解释一下为什么Fiddler没有通过PowerShell捕获HTTP流量,以及如何解决这个问题吗?

mefy6pfw

mefy6pfw1#

Fiddler实际上是通过代理工作的,运行时会自动在IE中设置代理设置,你可以通过启动Fiddler,然后在“Internet选项”〉“连接”下选中“局域网设置”来检查这一点。
Invoke-RestMethod有一个-Proxy参数,可以用来指向Fiddler的代理,我认为默认值是127.0.0.1:8888:
Invoke-RestMethod -Proxy 'http://127.0.0.1:8888' ....

编辑:添加屏幕截图以确认上述答案。

eyh26e7m

eyh26e7m2#

我在安装NPM包时遇到了类似的问题(Powershell和Fiddler 2)。
它工作after setting up Fiddler as a Reverse Proxy,然后使用这里的答案中提到的命令(感谢JNK)。

以下是逐步说明:

1.按照here提到的步骤,编写一行FiddlerScript规则,将Fiddler用作反向代理。
在我的情况下,它是:
如果(o会话.主机.转换为小写()==“127.0.0.1:8888”oSession.host)

1.然后在PowerShell中使用配置的代理设置:
PS F:〉npm安装yo -g**-代理“http://127.0.0.1:8888”**
1.现在PowerShell流量应该流经Fiddler。

k4ymrczo

k4ymrczo3#

我能够通过重置Fiddler https证书来使它工作(请参见此answer)。
我在测试一个项目时遇到了同样的问题,结果发现运行Fiddler是导致这个错误的原因。
如果您正在使用Fiddler拦截HTTP请求,请将其关闭...
这是造成这种误差的许多原因之一。
要修复Fiddler,您可能需要Reset Fiddler Https Certificates

相关问题