Verwenden von Dev Proxy mit PowerShell

Auf einen Blick
Ziel: Konfigurieren von PowerShell für die Arbeit mit Dev Proxy
Zeit: 5 Minuten
Voraussetzungen:Einrichten des Dev-Proxys

Dev Proxy funktioniert mit PowerShell auf allen Betriebssystemen. Unter macOS und Linux erkennt PowerShell systemproxyänderungen ordnungsgemäß, und es ist keine zusätzliche Konfiguration erforderlich. Unter Windows speichert PowerShell Proxyeinstellungen zwischen, die zusätzliche Schritte erfordern.

macOS und Linux

Unter macOS und Linux erkennt PowerShell Systemproxyänderungen automatisch. Starten Sie Dev Proxy, und verwenden Sie PowerShell wie gewohnt– Anforderungen werden ohne zusätzliche Konfiguration abgefangen.

Fenster

Wenn Sie Dev Proxy mit PowerShell unter Windows verwenden, treten möglicherweise Probleme auf, bei denen PowerShell beim Starten oder Beenden des Systemproxys nicht erkannt wird. Dieses Problem betrifft sowohl Windows PowerShell (5.1) als auch PowerShell 7+ (Core).

Das Problem

Unter Windows zwischenspeichern PowerShell-Sitzungen die Systemproxyeinstellungen, sobald sie gestartet werden. Dies bedeutet, dass Sie, wenn Sie:

  1. Öffnen einer PowerShell-Sitzung
  2. Starten des Dev-Proxys (der sich selbst als Systemproxy konfiguriert)
  3. Durchführen von HTTP-Anforderungen aus der ursprünglichen PowerShell-Sitzung

Die Anforderungen werden nicht über Dev Proxy weitergeleitet, da PowerShell beim Starten der Sitzung die zwischengespeicherten Proxyeinstellungen verwendet.

In ähnlicher Weise, wenn Sie:

  1. Dev Proxy starten
  2. Öffnen Sie eine PowerShell-Sitzung, und senden Sie Anfragen – diese werden korrekt abgefangen.
  3. Beenden des Dev-Proxys
  4. Ausführen von Anforderungen aus derselben PowerShell-Sitzung

Die Anforderungen schlagen fehl, da PowerShell weiterhin versucht, den nicht mehr vorhandenen Proxy zu verwenden.

Problemumgehung: PowerShell-Sitzung neu starten

Die einfachste Problemumgehung besteht darin, Die PowerShell-Sitzung nach dem Starten oder Beenden von Dev Proxy neu zu starten oder zu beenden. Durch den Neustart der Sitzung wird sichergestellt, dass PowerShell die aktuellen Systemproxyeinstellungen einnimmt.

Alternative: Manuelles Festlegen des Proxys

Anstatt sich auf die Systemproxyerkennung zu verlassen, können Sie Dev Proxy so konfigurieren, dass er nicht als Systemproxy registriert wird und den Proxy manuell in PowerShell festlegen.

Schritt 1: Starten des Dev-Proxys ohne Systemproxy

Starten Sie Dev Proxy mit der --as-system-proxy false Option:

devproxy --as-system-proxy false

Schritt 2: Festlegen der Proxyumgebungsvariable in PowerShell

Legen Sie in Ihrer PowerShell-Sitzung die HTTPS_PROXY Umgebungsvariable fest:

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

Wenn Sie auch HTTP-Anforderungen abfangen müssen:

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

Schritt 3: Löschen des Proxys, wenn Sie fertig sind

Wenn Sie mit der Verwendung von Dev Proxy fertig sind, löschen Sie die Umgebungsvariablen:

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

Verwenden eines PowerShell-Profils

Um das Festlegen des Proxys zu vereinfachen, können Sie Funktionen in Ihrem PowerShell-Profil erstellen. Fügen Sie Folgendes zu Ihrer $PROFILE-Datei hinzu:

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"
}

Anschließend können Sie mit den Befehlen Set-DevProxy und Clear-DevProxy den Proxy in Ihrer PowerShell-Sitzung schnell aktivieren oder deaktivieren.