我尝试使用Fiddler帮助某人解决Invoke-RestMethod
调用ASP.NET WebAPI的问题。不幸的是,当我在PowerShell中调用Invoke-RestMethod
时,Fiddler没有拦截HTTP通信。
当我使用Internet Explorer浏览ASP.NET网站的根目录时,它是同一应用程序的一部分,Fiddler按预期拦截了流量。
有人能解释一下为什么Fiddler没有通过PowerShell捕获HTTP流量,以及如何解决这个问题吗?
我尝试使用Fiddler帮助某人解决Invoke-RestMethod
调用ASP.NET WebAPI的问题。不幸的是,当我在PowerShell中调用Invoke-RestMethod
时,Fiddler没有拦截HTTP通信。
当我使用Internet Explorer浏览ASP.NET网站的根目录时,它是同一应用程序的一部分,Fiddler按预期拦截了流量。
有人能解释一下为什么Fiddler没有通过PowerShell捕获HTTP流量,以及如何解决这个问题吗?
3条答案
按热度按时间mefy6pfw1#
Fiddler实际上是通过代理工作的,运行时会自动在IE中设置代理设置,你可以通过启动Fiddler,然后在“Internet选项”〉“连接”下选中“局域网设置”来检查这一点。
Invoke-RestMethod
有一个-Proxy
参数,可以用来指向Fiddler的代理,我认为默认值是127.0.0.1:8888:Invoke-RestMethod -Proxy 'http://127.0.0.1:8888' ....
编辑:添加屏幕截图以确认上述答案。
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。
k4ymrczo3#
我能够通过重置Fiddler https证书来使它工作(请参见此answer)。
我在测试一个项目时遇到了同样的问题,结果发现运行Fiddler是导致这个错误的原因。
如果您正在使用Fiddler拦截HTTP请求,请将其关闭...
这是造成这种误差的许多原因之一。
要修复Fiddler,您可能需要Reset Fiddler Https Certificates。