在 PowerShell 中为 PowerShell WebClient 设置代理?

Setting a proxy in PowerShell on for the PowerShell WebClient?

我正在开发使用 HTTP 访问 REST 服务的 PowerShell 脚本。出于调试目的,我想通过本地代理 (Fiddler) 重定向该脚本创建的所有 HTTP 流量。

我不想在 IE/Windows 互联网设置中将 Fiddler 设置为系统范围的代理,因为这会通过 Fiddler 重定向我整个系统的流量(特别是因为 Fiddler 解密 SSL/TLS 流量).

如何设置仅影响一个 WebClient 实例或仅影响 PowerShell 的代理?

使用 WebProxy class 并使用 Fiddler 的地址实例化它(默认侦听端口 8888):

$FiddlerWP = New-Object System.Net.WebProxy "http://127.0.0.1:8888"

$WebClient = New-Object System.Net.WebClient
$WebClient.Proxy = $FiddlerWP

# This request will now get proxied through Fiddler
$WebClient.DownloadString("https://test.site.example")