Fiddler 未拦截 PowerShell Web 请求

问题描述 投票:0回答:4

我正在尝试使用 Fiddler 帮助某人解决

Invoke-RestMethod
调用 ASP.NET WebAPI 的问题。不幸的是,当我在 PowerShell 中调用
Invoke-RestMethod
时,Fiddler 并未拦截 HTTP 通信。

当我使用 Internet Explorer 浏览 ASP.NET 网站的根目录(该网站是同一应用程序的一部分)时,Fiddler 按预期拦截流量。

谁能解释一下为什么 Fiddler 不通过 PowerShell 捕获 HTTP 流量,以及如何解决这个问题?

powershell asp.net-web-api visual-studio-2013
4个回答
18
投票

Fiddler 实际上是通过代理工作的,运行时会自动在 IE 中设置代理设置。您可以通过启动 fiddler 然后检查 Internet 选项 > 连接下的“Lan 设置”来检查这一点。

Invoke-RestMethod
有一个
-Proxy
参数,您可以使用它来指向 Fiddler 的代理。我认为默认是 127.0.0.1:8888 :

Invoke-RestMethod -Proxy 'http://127.0.0.1:8888' ....

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

Fiddler Options


1
投票

我在安装 NPM 软件包时遇到了类似的问题(使用 Powershell 和 Fiddler2)。

在将 Fiddler 设置为反向代理之后然后使用此处答案中提到的命令(感谢 JNK),它起作用了。

以下分步说明:

    按照
  1. 此处提到的步骤并编写一行 FiddlerScript 规则以使用 Fiddler 作为反向代理。
就我而言,是:

if (oSession.host.toLowerCase() == "127.0.0.1:8888") oSession.host = "127.0.0.1:80";

    然后在 PowerShell 中使用配置的代理设置:
PS F:> npm install yo -g

-proxy 'http://127.0.0.1:8888'

    现在 PowerShell 流量应该流经 Fiddler。

0
投票
我可以通过重置 fiddler https 证书来使其工作(请参阅此

答案)。

我在测试一个项目时遇到了同样的问题,结果发现运行 Fiddler 是导致此错误的原因..!!

如果你正在使用Fiddler拦截http请求,请将其关闭...

这是导致此类错误的众多原因之一。

要修复 Fiddler,您可能需要

重置 Fiddler Https 证书


0
投票
我在 powershell v5 中尝试了上述所有解决方案,但它不起作用。

唯一的解决方案是使用

powershll core v7.x (tried v7.4)

 并且效果很好
Fiddler 可以拦截 PowerShell Web 请求。

© www.soinside.com 2019 - 2024. All rights reserved.