Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use este guia para diagnosticar e corrigir problemas comuns de Proxy de Desenvolvimento. Começa pelo teu sintoma e trabalha as perguntas de diagnóstico para encontrar a solução.
Sintoma: Dev Proxy não está a interceptar pedidos
Iniciaste o Dev Proxy, mas os pedidos da tua app não aparecem na saída do Dev Proxy. Trabalhe estas questões para identificar a causa.
O Dev Proxy está a funcionar?
Verifica se o Dev Proxy está a correr e pronto para interceptar pedidos.
O que procurar:
Depois de iniciar o Dev Proxy, deverá ver resultados semelhantes a:
info Dev Proxy API listening on http://127.0.0.1:8897...
info Dev Proxy listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy
Se não vires esta saída:
- Verifique se o Dev Proxy está instalado corretamente ao correr
devproxy --version - Se aparecer um erro, reinstale o Dev Proxy
O Dev Proxy está registado como proxy do sistema?
Dev Proxy deve ser registado como proxy do sistema para intercetar pedidos automaticamente. Se não for, as solicitações da tua aplicação ignoram completamente o Dev Proxy.
Como verificar no macOS:
- Abrir Definições do Sistema>Rede
- Selecione a sua ligação de rede ativa
- Ir a Detalhes...>Proxies
- Procure Proxy HTTP Seguro (HTTPS) definido como
127.0.0.1:8000
Como verificar no Windows:
- Abrir Definições>Rede e Internet>Proxy
- Em Configuração Manual do proxy, verifique se o servidor proxy está definido como
127.0.0.1:8000
Se o Proxy de Desenvolvimento não estiver registado como proxy do sistema:
Verifica a configuração do teu Proxy de Desenvolvimento. Execute devproxy config para abrir o ficheiro de configuração e verifique se não contém:
{
"asSystemProxy": false
}
Se esta definição existir e estiver definida para false, removê-la ou defini-la para true, então reiniciar o Dev Proxy.
Está a verificar os URLs corretos?
O Dev Proxy apenas interceta pedidos para URLs que correspondam a padrões na urlsToWatch configuração.
Como verificar:
- Veja a saída de arranque do Proxy de Desenvolvimento para a lista de URLs monitorizadas
- Compare-os com o URL que a sua aplicação está a chamar
Problemas comuns:
-
Curingas em falta:
https://api.example.comnão corresponde ahttps://api.example.com/users. Utilizehttps://api.example.com/*em substituição. - Domínio errado: Verifique novamente o nome de domínio, incluindo subdomínios
- HTTP vs HTTPS: Certifique-se de que o protocolo corresponde
Para testar o seu padrão de URL:
devproxy --urls-to-watch "https://your-api.com/*"
Depois faz um pedido à tua API e verifica se o Dev Proxy regista o código.
Estás a usar o ficheiro de configuração correto?
Dev Proxy pode estar a usar um ficheiro de configuração diferente do que esperas.
Como o Proxy de Desenvolvimento encontra ficheiros de configuração:
- Se especificar
--config-file, o Proxy de Desenvolvimento usa esse ficheiro - Caso contrário, Dev Proxy procura
devproxyrc.jsonno diretório atual - Se não for encontrado, o Dev Proxy usa as definições padrão
Para verificar qual o ficheiro de configuração que está a ser utilizado:
Execute Dev Proxy com registo de depuração:
devproxy --log-level debug
Procura saídas que mostrem qual ficheiro de configuração está carregado.
Para especificar explicitamente um ficheiro de configuração:
devproxy --config-file ./my-config.json
Estás a usar Dev Proxy com uma aplicação Node.js?
Node.js não usa automaticamente as definições do proxy do sistema. Tens de configurar a tua aplicação de Node.js para usar explicitamente o proxy.
Solution:
Usa o global-agent pacote ou configura a tua biblioteca HTTP para usar o proxy. Consulte Utilizar o Proxy de Desenvolvimento para aplicações Node.js para instruções detalhadas.
Solução rápida com o agente global:
Instalar global-agent:
npm install global-agentAdicione ao ponto de entrada da sua aplicação:
import { bootstrap } from 'global-agent'; bootstrap();Inicie a sua aplicação com variáveis de ambiente proxy:
NODE_TLS_REJECT_UNAUTHORIZED=0 GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8000 node app.js
Estás a usar Dev Proxy com PowerShell no Windows?
O PowerShell não usa automaticamente as definições do proxy do sistema para pedidos web feitos com Invoke-WebRequest ou Invoke-RestMethod.
Solution:
Configure o PowerShell para usar o proxy definindo o -Proxy parâmetro:
Invoke-WebRequest -Uri "https://api.example.com/data" -Proxy "http://127.0.0.1:8000"
Ou definir o proxy para toda a sessão:
$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"
Se estiver a usar o PowerShell 7+, também pode usar:
[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy("http://127.0.0.1:8000")
Outras plataformas e frameworks
Se estiveres a usar outras plataformas, consulta estes guias:
| Plataforma | Guia |
|---|---|
| Aplicações .NET | Utilize o Dev Proxy com aplicações .NET |
| Aplicações .NET 4.8 | As aplicações .NET 4.8 requerem configuração especial |
| Contentores Docker | Usar Proxy de Desenvolvimento num contentor Docker |
| SharePoint Framework | Utiliza o Dev Proxy com SPFx |
Sintoma: Os pedidos são interceptados mas passados sem alterações
O Dev Proxy mostra os seus pedidos na saída, mas eles não estão a ser modificados, simulados ou a devolver erros simulados.
Os teus plugins estão ativados?
Verifica se os plugins que queres usar estão ativados na tua configuração.
Como verificar:
Abra o seu ficheiro de configuração e verifique que:
- O plugin está listado no
pluginsarray - O plugin tem
"enabled": true
{
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
]
}
Os teus plugins estão na ordem correta?
A ordem dos plugins importa no Dev Proxy. Os plugins executam-se pela ordem em que estão listados, e alguns plugins podem parar de processar antes de outros serem executados.
Problema comum:
Se já tiveres MockResponsePlugin antes de GenericRandomErrorPlugin, e um mock corresponder ao seu pedido, o plugin de erro aleatório nunca executa.
Solution:
Organiza os plugins pela ordem em que queres que processem os pedidos. Para mais informações, consulte o artigo "Por que não são lançados erros aleatórios ao usar 'mocks'?".
O teu padrão de URL simulado corresponde ao pedido?
Para respostas simuladas, o padrão de URL deve corresponder exatamente ao URL do pedido.
Coisas a verificar:
- Parâmetros da string de consulta:
https://api.example.com/users?id=1não correspondehttps://api.example.com/users - Cortes posteriores:
https://api.example.com/users/não correspondehttps://api.example.com/users - Sensibilidade a maiúsculas: Os caminhos de URL são sensíveis a maiúsculas e minúsculas.
O método de pedido está correto?
Os mocks são específicos de cada método. Um mock para os pedidos GET não corresponde aos pedidos POST.
Como verificar:
No seu ficheiro simulado, verifique se a method propriedade corresponde ao seu pedido:
{
"request": {
"url": "https://api.example.com/users",
"method": "GET"
},
"response": {
"statusCode": 200,
"body": { "users": [] }
}
}
Sintoma: Erros de SSL/certificado na sua aplicação
A tua aplicação gera erros SSL ou de certificados ao tentar fazer pedidos através do Dev Proxy.
Tens instalado o certificado Dev Proxy?
O Dev Proxy utiliza um certificado auto-assinado para desencriptar o tráfego HTTPS. O seu sistema deve confiar neste certificado.
Solution:
Execute o comando de instalação do certificado:
devproxy cert ensure
Este comando instala e confia no certificado Dev Proxy no seu sistema.
O certificado é de confiança?
O certificado pode estar instalado, mas não ser confiável.
Como verificar no macOS:
- Abrir Acesso ao Porta-chaves
- Pesquisa por "Dev Proxy"
- Clique duas vezes no certificado
- Expandir a Confiança
- Verifique se a Camada de Soquetes Seguros (SSL) está definida para Sempre Confiar
Como verificar no Windows:
- Executar
certmgr.msc - Navegue para Autoridades Certificadoras Raiz Confiáveis>Certificados
- Procure o certificado Dev Proxy
Se o certificado não for confiável:
Remover e reinstalar o certificado:
devproxy cert remove
devproxy cert ensure
Estás a usar Node.js?
Node.js não usa o armazenamento de certificados do sistema por defeito. Precisa de escolher uma das opções:
Opção 1: Desativar a validação de certificados (apenas desenvolvimento):
NODE_TLS_REJECT_UNAUTHORIZED=0 node app.js
Advertência
Nunca uso NODE_TLS_REJECT_UNAUTHORIZED=0 em produção. Desativa toda a validação de certificados.
Opção 2: Adicionar o certificado de Proxy de Desenvolvimento à Node.js:
Exporte o certificado Dev Proxy e defina a NODE_EXTRA_CA_CERTS variável de ambiente:
NODE_EXTRA_CA_CERTS=/path/to/devproxy-cert.pem node app.js
Estás a usar um runtime ou framework diferente?
Diferentes plataformas tratam os certificados de forma diferente:
| Plataforma | Solução |
|---|---|
| Python | Use REQUESTS_CA_BUNDLE ou SSL_CERT_FILE variáveis de ambiente |
| Java | Importar certificado para a loja de chaves Java usando keytool |
| .NET | O certificado costuma ser confiável através do repositório do sistema |
| Docker | Monte o certificado e atualize os certificados da CA no contentor |
Outros problemas comuns
Todas as solicitações falham com o tempo de resposta do gateway
Causa:
O Proxy de desenvolvimento não consegue aceder à API alvo.
Solution:
Veja Por que todas as requisições falham com o tempo limite do gateway?
Sem ligação à internet após usar o Dev Proxy
Causa:
O Dev Proxy não se desregista corretamente como proxy do sistema.
Solution:
Vê porque é que a minha ligação à internet não funciona depois de usar o proxy?
Receber 429 respostas inesperadamente
Causa:
Os plugins de limitação de taxa estão ativados e configurados.
Solution:
Vê Porque é que continuo a receber 429 respostas?
Erros da base de dados
| Erro | Solução |
|---|---|
| Erro de inicialização do SqliteConnection | Corrigir a configuração do SQLite |
| Imagem de disco da base de dados está corrompida | Reconstruir a base de dados |
Procura mais ajuda
Se não conseguires encontrar uma solução:
-
Ativar registo de depuração: Executar
devproxy --log-level debugpara resultados detalhados - Pesquisar problemas existentes: Problemas do Proxy de Desenvolvimento no GitHub
- Peça ajuda: Obtenha ajuda e apoio