Dev Proxy gebruiken met PowerShell

In één oogopslag
Doel: PowerShell configureren voor gebruik met Dev Proxy
Tijd: 5 minuten
Vereisten:Dev Proxy instellen

Dev Proxy werkt met PowerShell op alle besturingssystemen. In macOS detecteert PowerShell correct wijzigingen in de systeemproxy en is er geen extra configuratie nodig. In Linux configureert Dev Proxy de systeemproxy niet, dus moet u de proxyomgevingsvariabelen instellen. In Windows slaat PowerShell proxy-instellingen in de cache op. Hiervoor zijn extra stappen vereist.

macOS

In macOS detecteert PowerShell automatisch wijzigingen in de systeemproxy. Start Dev Proxy en gebruik PowerShell zoals u dat normaal zou doen: aanvragen worden onderschept zonder extra configuratie.

Linux

In Linux registreert Dev Proxy zich niet als de systeemproxy en leest PowerShell alleen proxy-instellingen uit omgevingsvariabelen. Nadat u Dev Proxy hebt gestart, stelt u de HTTPS_PROXY en HTTP_PROXY omgevingsvariabelen in uw PowerShell-sessie in:

$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"

Wanneer u klaar bent met het gebruik van Dev Proxy, wis de omgevingsvariabelen:

$env:HTTPS_PROXY = $null
$env:HTTP_PROXY = $null

Windows

Wanneer u Dev Proxy gebruikt met PowerShell in Windows, kunnen er problemen optreden waarbij PowerShell niet detecteert wanneer de systeemproxy wordt gestart of gestopt. Dit probleem is van invloed op Zowel Windows PowerShell (5.1) als PowerShell 7+ (Core).

Het probleem

In Windows slaan PowerShell-sessies de systeemproxy-instellingen in de cache op wanneer ze worden gestart. Dit betekent dat als u:

  1. Een PowerShell-sessie openen
  2. Dev Proxy starten (die zichzelf configureert als de systeemproxy)
  3. HTTP-aanvragen maken vanuit de oorspronkelijke PowerShell-sessie

De aanvragen worden niet gerouteerd via de dev-proxy omdat PowerShell gebruikmaakt van de proxy-instellingen in de cache vanaf het moment dat de sessie werd gestart.

Op dezelfde manier geldt het volgende als u:

  1. Dev Proxy starten
  2. Open een PowerShell-sessie en dien aanvragen in (deze worden correct onderschept)
  3. Dev Proxy stoppen
  4. Aanvragen indienen vanuit dezelfde PowerShell-sessie

De aanvragen mislukken omdat PowerShell nog steeds probeert de proxy te gebruiken die niet meer bestaat.

Tijdelijke oplossing: PowerShell-sessie opnieuw starten

De eenvoudigste tijdelijke oplossing is om uw PowerShell-sessie opnieuw op te starten na het starten of stoppen van dev proxy. Als u de sessie opnieuw start, zorgt u ervoor dat PowerShell de huidige systeemproxy-instellingen ophaalt.

Alternatief: de proxy handmatig instellen

In plaats van te vertrouwen op systeemproxydetectie, kunt u Dev Proxy zo configureren dat deze niet als de systeemproxy wordt geregistreerd en de proxy handmatig in PowerShell instelt.

Stap 1: Dev Proxy zonder systeemproxy starten

Start Dev Proxy met de --as-system-proxy false optie:

devproxy --as-system-proxy false

Stap 2: De proxyomgevingsvariabele instellen in PowerShell

Stel in uw PowerShell-sessie de HTTPS_PROXY omgevingsvariabele in:

$env:HTTPS_PROXY = "http://127.0.0.1:8000"

Als u ook HTTP-aanvragen moet onderscheppen:

$env:HTTP_PROXY = "http://127.0.0.1:8000"

Stap 3: De proxy wissen nadat u klaar bent

Wanneer u klaar bent met het gebruik van Dev Proxy, wis de omgevingsvariabelen:

$env:HTTPS_PROXY = $null
$env:HTTP_PROXY = $null

Een PowerShell-profiel gebruiken

Om het instellen van de proxy te vereenvoudigen, kunt u functies maken in uw PowerShell-profiel. Voeg het volgende toe aan uw $PROFILE bestand:

function Set-DevProxy {
    $env:HTTP_PROXY = "http://127.0.0.1:8000"
    $env:HTTPS_PROXY = "http://127.0.0.1:8000"
    Write-Host "Dev Proxy enabled"
}

function Clear-DevProxy {
    $env:HTTP_PROXY = $null
    $env:HTTPS_PROXY = $null
    Write-Host "Dev Proxy disabled"
}

U kunt vervolgens de Set-DevProxy en Clear-DevProxy opdrachten gebruiken om de proxy snel in of uit te schakelen in uw PowerShell-sessie.