Uso del proxy de desarrollo con PowerShell

De un vistazo
Objetivo: Configurar PowerShell para que funcione con el Dev Proxy
Tiempo: 5 minutos
Requisitos previos:Configuración del proxy de desarrollo

El proxy de desarrollo funciona con PowerShell en todos los sistemas operativos. En macOS y Linux, PowerShell detecta correctamente los cambios del proxy del sistema y no se necesita ninguna configuración adicional. En Windows, PowerShell almacena en caché la configuración del proxy, lo que requiere pasos adicionales.

macOS y Linux

En macOS y Linux, PowerShell detecta automáticamente los cambios de proxy del sistema. Inicie el proxy de desarrollo y use PowerShell como lo haría normalmente: las solicitudes se interceptan sin ninguna configuración adicional.

Windows

Al usar el proxy de desarrollo con PowerShell en Windows, es posible que encuentre problemas en los que PowerShell no detecta cuándo se inicia o detiene el proxy del sistema. Este problema afecta tanto a Windows PowerShell (5.1) como a PowerShell 7+ (Core).

El problema

En Windows, las sesiones de PowerShell almacenan en caché la configuración del proxy del sistema cuando se inician. Esto significa que si:

  1. Abrir una sesión de PowerShell
  2. Iniciar proxy de desarrollo (que se configura como proxy del sistema)
  3. Realización de solicitudes HTTP desde la sesión original de PowerShell

Las solicitudes no se enrutan a través del proxy de desarrollo porque PowerShell usa la configuración del proxy almacenado en caché desde el momento en que se inició la sesión.

Del mismo modo, si:

  1. Iniciar proxy de desarrollo
  2. Abra una sesión de PowerShell y realice solicitudes (se interceptan correctamente).
  3. Detener el servidor proxy de desarrollo
  4. Realización de solicitudes desde la misma sesión de PowerShell

Se produce un error en las solicitudes porque PowerShell sigue intentando usar el proxy que ya no existe.

Solución alternativa: Reinicio de la sesión de PowerShell

La solución alternativa más sencilla es reiniciar la sesión de PowerShell después de iniciar o detener el proxy de desarrollo. Reiniciar la sesión garantiza que PowerShell recoge la configuración actual del proxy del sistema.

Alternativa: Establecer el proxy manualmente

En lugar de confiar en la detección de proxy del sistema, puede configurar Dev Proxy para que no se registre como proxy del sistema y establecer el proxy manualmente en PowerShell.

Paso 1: Iniciar proxy de desarrollo sin proxy del sistema

Inicie el proxy de desarrollo con la --as-system-proxy false opción :

devproxy --as-system-proxy false

Paso 2: Establecimiento de la variable de entorno de proxy en PowerShell

En la sesión de PowerShell, establezca la HTTPS_PROXY variable de entorno:

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

Si también necesita interceptar solicitudes HTTP:

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

Paso 3: Borrar el proxy cuando haya terminado

Cuando haya terminado de usar el proxy de desarrollo, borre las variables de entorno:

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

Uso de un perfil de PowerShell

Para simplificar la configuración del proxy, puede crear funciones en el perfil de PowerShell. Agregue lo siguiente al $PROFILE archivo:

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

Después, puede usar los comandos Set-DevProxy y Clear-DevProxy para habilitar o deshabilitar rápidamente el proxy en la sesión de PowerShell.