Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare questa guida per diagnosticare e risolvere i problemi comuni del proxy di sviluppo. Iniziare con il sintomo e usare le domande di diagnostica per trovare la soluzione.
Sintomo: Dev Proxy non intercetta le richieste
È stato avviato Dev Proxy, ma le richieste dell'app non vengono visualizzate nell'output del proxy di sviluppo. Esaminare queste domande per identificare la causa.
Dev Proxy è in esecuzione?
Verificare che Dev Proxy sia in esecuzione e pronto per intercettare le richieste.
Cosa cercare:
Dopo l'avvio di Dev Proxy, l'output dovrebbe essere simile al seguente:
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 non vedi questo output:
- Verificare che Il proxy di sviluppo sia installato correttamente eseguendo
devproxy --version - Se viene visualizzato un errore, reinstallare Dev Proxy
Dev Proxy è registrato come proxy di sistema?
Dev Proxy deve essere registrato come proxy di sistema per intercettare automaticamente le richieste. In caso contrario, le richieste dell'app ignorano completamente Dev Proxy.
Come verificare in macOS:
- Apri Impostazioni di sistema>Rete
- Selezionare la connessione di rete attiva
- Vai a Dettagli...>Proxy
- Cerca il Secure HTTP Proxy (HTTPS) impostato su
127.0.0.1:8000
Come controllare su Windows:
- Apri Impostazioni>Rete e Internet>Proxy
- In Installazione manuale del proxy verificare che il server proxy sia impostato su
127.0.0.1:8000
Se Dev Proxy non è registrato come proxy di sistema:
Controllare la configurazione del proxy di sviluppo. Eseguire devproxy config per aprire il file di configurazione e verificare che non contenga:
{
"asSystemProxy": false
}
Se questa impostazione esiste e è impostata su false, rimuoverla o impostarla su true, quindi riavviare Dev Proxy.
Stai guardando gli URL corretti?
Dev Proxy intercetta solo le richieste agli URL che corrispondono ai modelli nella urlsToWatch configurazione.
Procedure di controllo:
- Guardare l'output di avvio del Dev Proxy per l'elenco di URL monitorati.
- Confrontali con l'URL che l'app sta chiamando
Problemi comuni:
-
Caratteri jolly mancanti:
https://api.example.comnon corrisponde ahttps://api.example.com/users. Utilizzare invecehttps://api.example.com/*. - Dominio errato: controllare il nome di dominio, inclusi i sottodomini
- HTTP e HTTPS: assicurarsi che il protocollo corrisponda
Per testare il modello di URL:
devproxy --urls-to-watch "https://your-api.com/*"
Inviare quindi una richiesta all'API e verificare se Dev Proxy lo registra.
Si usa il file di configurazione corretto?
Dev Proxy potrebbe usare un file di configurazione diverso da quello previsto.
Come Dev Proxy trova i file di configurazione:
- Se si specifica
--config-file, Dev Proxy usa tale file - In caso contrario, Dev Proxy cerca
devproxyrc.jsonnella directory corrente - Se non viene trovato, Dev Proxy usa le impostazioni predefinite
Per verificare quale file di configurazione viene usato:
Eseguire Dev Proxy con log di debug:
devproxy --log-level debug
Cercare l'output che indica quale file di configurazione è stato caricato.
Per specificare in modo esplicito un file di configurazione:
devproxy --config-file ./my-config.json
Si usa Dev Proxy con un'applicazione Node.js?
Node.js non usa automaticamente le impostazioni proxy di sistema. È necessario configurare l'app Node.js per usare il proxy in modo esplicito.
Soluzione:
Usare il pacchetto global-agent oppure configurare la libreria HTTP per l'uso del proxy. Per istruzioni dettagliate, vedere Usare Dev Proxy con Node.js applicazioni .
Correzione rapida con global-agent:
Installare global-agent:
npm install global-agentAggiungi al punto di ingresso dell'app:
import { bootstrap } from 'global-agent'; bootstrap();Avviare l'app con le variabili di ambiente proxy:
NODE_TLS_REJECT_UNAUTHORIZED=0 GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8000 node app.js
Stai usando Dev Proxy con PowerShell su Microsoft Windows?
PowerShell non usa automaticamente le impostazioni proxy di sistema per le richieste Web effettuate con Invoke-WebRequest o Invoke-RestMethod.
Soluzione:
Configurare PowerShell per l'uso del proxy impostando il -Proxy parametro :
Invoke-WebRequest -Uri "https://api.example.com/data" -Proxy "http://127.0.0.1:8000"
In alternativa, impostare il proxy per l'intera sessione:
$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"
Se si usa PowerShell 7+, è anche possibile usare:
[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy("http://127.0.0.1:8000")
Altre piattaforme e framework
Se si usano altre piattaforme, vedere queste guide:
| Piattaforma | Guida |
|---|---|
| Applicazioni .NET | Usare Dev Proxy con applicazioni .NET |
| Applicazioni .NET 4.8 | Le app .NET 4.8 richiedono una configurazione speciale |
| Contenitori Docker | Usare il proxy di sviluppo in un contenitore Docker |
| SharePoint Framework | Usare Dev Proxy con SPFx |
Sintomo: le richieste vengono intercettate ma passate senza modifiche
Dev Proxy mostra le richieste nell'output, ma queste non vengono modificate, simulate o restituite con errori simulati.
I plug-in sono abilitati?
Verificare che i plug-in da usare siano abilitati nella configurazione.
Procedure di controllo:
Aprire il file di configurazione e verificare che:
- Il plug-in è elencato nella
pluginsmatrice - Il plug-in ha
"enabled": true
{
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
]
}
I plug-in sono nell'ordine corretto?
L'ordine dei plug-in è importante in Dev Proxy. I plug-in vengono eseguiti nell'ordine in cui sono elencati e alcuni plug-in potrebbero interrompere l'elaborazione prima che altri vengano eseguiti.
Problema comune:
Se hai MockResponsePlugin prima di GenericRandomErrorPlugin e un mock corrisponde alla tua richiesta, il plug-in di errore casuale non viene mai eseguito.
Soluzione:
Disponi i plug-in nell'ordine in cui vuoi che eselabori le richieste. Per altre informazioni, vedere Perché non vengono generati errori casuali quando si usano i mock?.
Il modello di URL fittizio corrisponde alla richiesta?
Per le risposte fittizie, il modello di URL deve corrispondere esattamente all'URL della richiesta.
Elementi da controllare:
- Parametri della stringa di query:
https://api.example.com/users?id=1non corrispondehttps://api.example.com/users - Barre finali:
https://api.example.com/users/non corrispondehttps://api.example.com/users - Distinzione tra maiuscole e minuscole: i percorsi URL fanno distinzione tra maiuscole e minuscole
Il metodo di richiesta è corretto?
Le simulazioni sono specifiche del metodo. Le richieste di simulazione per GET non sono conformi a quelle di POST.
Procedure di controllo:
Nel tuo file di mock, verifica che la proprietà method corrisponda alla tua richiesta.
{
"request": {
"url": "https://api.example.com/users",
"method": "GET"
},
"response": {
"statusCode": 200,
"body": { "users": [] }
}
}
Sintomo: errori di SSL/certificato nell'app
L'app genera errori SSL o certificato quando si tenta di effettuare richieste tramite Dev Proxy.
È installato il certificato del proxy di sviluppo?
Dev Proxy usa un certificato autofirmato per decrittografare il traffico HTTPS. Il sistema deve considerare attendibile questo certificato.
Soluzione:
Eseguire il comando di installazione del certificato:
devproxy cert ensure
Questo comando installa e considera attendibile il certificato del proxy di sviluppo nel sistema.
Il certificato è attendibile?
Il certificato potrebbe essere installato ma non attendibile.
Come verificare in macOS:
- Apri Accesso Portachiavi
- Cercare "Dev Proxy"
- Fare doppio clic sul certificato
- Espandere Fiducia
- Verificare che Secure Sockets Layer (SSL) sia impostato su Always Trust
Come controllare su Windows:
- Eseguire
certmgr.msc - Passare a Autorità di certificazione radice attendibili>Certificati
- Cercare il certificato del Dev Proxy
Se il certificato non è attendibile:
Rimuovere e reinstallare il certificato:
devproxy cert remove
devproxy cert ensure
Si usa Node.js?
Node.js non usa l'archivio certificati di sistema per impostazione predefinita. Devi fare una delle seguenti operazioni:
Opzione 1: Disabilitare la convalida dei certificati (solo sviluppo):
NODE_TLS_REJECT_UNAUTHORIZED=0 node app.js
Avviso
Non usare mai nell'ambiente NODE_TLS_REJECT_UNAUTHORIZED=0 di produzione. Disabilita tutta la convalida del certificato.
Opzione 2: Aggiungere il certificato del proxy di sviluppo a Node.js:
Esportare il certificato del proxy di sviluppo e impostare la NODE_EXTRA_CA_CERTS variabile di ambiente:
NODE_EXTRA_CA_CERTS=/path/to/devproxy-cert.pem node app.js
Si usa un runtime o un framework diverso?
Piattaforme diverse gestiscono i certificati in modo diverso:
| Piattaforma | Soluzione |
|---|---|
| Pitone | Usare REQUESTS_CA_BUNDLE o SSL_CERT_FILE variabili di ambiente |
| Java | Importare il certificato nell'archivio chiavi Java usando keytool |
| .NET | Il certificato è in genere considerato attendibile tramite lo store di certificati di sistema. |
| Docker | Montare il certificato e aggiornare i certificati ca nel contenitore |
Altri problemi comuni
Tutte le richieste falliscono con timeout del gateway
Causa:
Dev Proxy non riesce a raggiungere l'API di destinazione.
Soluzione:
Consulta Perché tutte le richieste falliscono a causa del timeout del gateway?
Nessuna connessione Internet dopo l'uso di Dev Proxy
Causa:
Dev Proxy non si deregistra correttamente come proxy di sistema.
Soluzione:
Vedere Perché la connessione Internet non funziona dopo l'uso del proxy?
Ottenere 429 risposte in modo imprevisto
Causa:
I plug-in di limitazione della frequenza sono abilitati e configurati.
Soluzione:
Vedere Perché si ricevono 429 risposte?
Errori del database
| Errore | Soluzione |
|---|---|
| Errore di inizializzazione di SqliteConnection | Correggere la configurazione di SQLite |
| "L'immagine del disco del database è malformata" | Ricompilare il database |
Ottenere altre informazioni
Se non è possibile trovare una soluzione:
-
Abilitare la registrazione di debug: eseguire
devproxy --log-level debugper un output dettagliato - Cercare problemi esistenti: problemi di GitHub di Dev Proxy
- Richiedere assistenza: Ottenere assistenza e supporto tecnico