Použití Dev Proxy s PowerShellem

Na první pohled
Cílem: Konfigurace PowerShellu pro práci s Dev Proxy
Čas: 5 minut
Požadavky:Nastavení dev proxy serveru

Dev Proxy funguje s PowerShellem ve všech operačních systémech. PowerShell v systému macOS a Linux správně rozpozná změny proxy serveru systému a nevyžaduje žádnou další konfiguraci. PowerShell ve Windows ukládá nastavení proxy serveru do mezipaměti, což vyžaduje další kroky.

macOS a Linux

PowerShell v systému macOS a Linux automaticky rozpozná změny proxy serveru systému. Spusťte Dev Proxy a použijte PowerShell jako obvykle – požadavky se zachycují bez jakékoli další konfigurace.

Windows

Pokud používáte Dev Proxy s PowerShellem ve Windows, můžou nastat problémy, kdy PowerShell nerozpozná, kdy se systémový proxy server spustí nebo zastaví. Tento problém se týká Windows PowerShellu (5.1) i PowerShellu 7+ (Core).

Problém

Relace PowerShellu ve Windows ukládají do mezipaměti nastavení systémového proxy serveru při spuštění. To znamená, že pokud:

  1. Otevřete relaci PowerShellu
  2. Spusťte Dev Proxy (který se konfiguruje jako systémový proxy server)
  3. Provádění požadavků HTTP z původní relace PowerShellu

Požadavky nejsou směrovány prostřednictvím dev proxy serveru, protože PowerShell používá nastavení proxy serveru uloženého v mezipaměti od spuštění relace.

Podobně platí, že pokud:

  1. Spuštění dev proxy serveru
  2. Otevřete relaci PowerShellu a proveďte požadavky (jsou zachycené správně).
  3. Zastavení vývojového proxy serveru
  4. Odesílejte požadavky ze stejné relace PowerShellu

Požadavky selžou, protože PowerShell se stále pokouší použít proxy server, který už neexistuje.

Alternativní řešení: Restartování relace PowerShellu

Nejjednodušším alternativním řešením je po spuštění nebo zastavení Dev Proxy restartovat relaci PowerShellu. Restartováním relace se zajistí, že PowerShell převezme aktuální nastavení proxy serveru systému.

Alternativní: Ruční nastavení proxy serveru

Místo toho, abyste se museli spoléhat na detekci proxy serveru systému, můžete dev proxy nakonfigurovat tak, aby se neregistrovali jako systémový proxy server a proxy server nastavili ručně v PowerShellu.

Krok 1: Spuštění dev proxy serveru bez proxy systému

Spusťte Dev Proxy s --as-system-proxy false možností:

devproxy --as-system-proxy false

Krok 2: Nastavení proměnné prostředí proxy v PowerShellu

V relaci PowerShellu nastavte proměnnou HTTPS_PROXY prostředí:

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

Pokud potřebujete také zachycovat požadavky HTTP:

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

Krok 3: Vymazání proxy serveru po dokončení

Až budete hotovi s využitím Dev Proxy, vymažte proměnné prostředí:

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

Použití profilu PowerShellu

Pokud chcete zjednodušit nastavení proxy serveru, můžete v profilu PowerShellu vytvářet funkce. Přidejte následující do souboru $PROFILE.

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

Potom můžete pomocí příkazů Set-DevProxy a Clear-DevProxy rychle povolit nebo zakázat proxy v relaci PowerShellu.