Usar o Dev Proxy com o PowerShell

Visão geral
Objetivo: Configurar o PowerShell para trabalhar com o Proxy de Desenvolvimento
Tempo: 5 minutos
Pré-requisitos:Configurar o Proxy de Desenvolvimento

O Proxy de Desenvolvimento funciona com o PowerShell em todos os sistemas operacionais. No macOS e no Linux, o PowerShell detecta corretamente as alterações de proxy do sistema e nenhuma configuração extra é necessária. No Windows, o PowerShell armazena em cache as configurações de proxy, o que requer etapas extras.

macOS e Linux

No macOS e no Linux, o PowerShell detecta alterações de proxy do sistema automaticamente. Inicie o Proxy de Desenvolvimento e use o PowerShell como normalmente faria, as solicitações são interceptadas sem nenhuma configuração extra.

Windows

Ao usar o Proxy de Desenvolvimento com o PowerShell no Windows, você pode encontrar problemas em que o PowerShell não detecta quando o proxy do sistema é iniciado ou interrompido. Esse problema afeta o Windows PowerShell (5.1) e o PowerShell 7+ (Core).

O problema

No Windows, as sessões do PowerShell armazenam em cache as configurações de proxy do sistema quando são iniciadas. Isso significa que, se você:

  1. Abrir uma sessão do PowerShell
  2. Iniciar o Proxy de Desenvolvimento (que se configura como o proxy do sistema)
  3. Fazer solicitações HTTP da sessão original do PowerShell

As solicitações não são roteadas por meio do Dev Proxy porque o PowerShell usa as configurações de proxy em cache de quando a sessão foi iniciada.

Da mesma forma, se você:

  1. Iniciar Proxy de Desenvolvimento
  2. Abra uma sessão do PowerShell e faça solicitações (elas são interceptadas corretamente)
  3. Parar Proxy de Desenvolvimento
  4. Fazer solicitações da mesma sessão do PowerShell

As solicitações falham porque o PowerShell ainda tenta usar o proxy que não existe mais.

Solução alternativa: reiniciar a sessão do PowerShell

A solução alternativa mais simples é reiniciar a sessão do PowerShell depois de iniciar ou parar o Proxy de Desenvolvimento. Reiniciar a sessão garante que o PowerShell escolha as configurações atuais de proxy do sistema.

Alternativa: definir o proxy manualmente

Em vez de depender da detecção de proxy do sistema, você pode configurar o Dev Proxy para não se registrar como o proxy do sistema e definir o proxy manualmente no PowerShell.

Etapa 1: Iniciar o Proxy de Desenvolvimento sem proxy do sistema

Inicie o Proxy de Desenvolvimento com a opção --as-system-proxy false :

devproxy --as-system-proxy false

Etapa 2: Definir a variável de ambiente de proxy no PowerShell

Na sessão do PowerShell, defina a variável de HTTPS_PROXY ambiente:

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

Se você também precisar interceptar solicitações HTTP:

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

Etapa 3: Limpar o proxy quando terminar

Quando terminar de usar o Proxy de Desenvolvimento, desmarque as variáveis de ambiente:

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

Usar um perfil do PowerShell

Para simplificar a configuração do proxy, você pode criar funções em seu perfil do PowerShell. Adicione o seguinte ao arquivo $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"
}

Em seguida, você pode usar Set-DevProxy e Clear-DevProxy comandos para habilitar ou desabilitar rapidamente o proxy em sua sessão do PowerShell.