Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd den här guiden för att diagnostisera och åtgärda vanliga Dev Proxy-problem. Börja med ditt symptom och gå igenom diagnostikfrågorna för att hitta lösningen.
Symptom: Dev Proxy fångar inte upp begäranden
Du har startat Dev Proxy, men appens begäranden visas inte i Dev Proxy-utdata. Gå igenom de här frågorna för att identifiera orsaken.
Körs Dev Proxy?
Kontrollera att Dev Proxy körs och är redo att avlyssna begäranden.
Vad du ska söka efter:
När du har startat Dev Proxy bör du se utdata som liknar:
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
Om du inte ser dessa utdata:
- Kontrollera att Dev Proxy har installerats korrekt genom att köra
devproxy --version - Om du får ett fel installerar du om Dev Proxy
Är Dev Proxy registrerat som systemproxy?
Dev Proxy måste registreras som systemproxy för att avlyssna begäranden automatiskt. Om det inte är det kringgår appens begäranden Dev Proxy helt och hållet.
Så här kontrollerar du macOS:
- Öppna Systeminställningar>Nätverk
- Välj din aktiva nätverksanslutning
- Gå till Information...>Proxyservrar
- Leta efter säker HTTPS-proxy inställd på
127.0.0.1:8000
Så här kontrollerar du i Windows:
- Öppna inställningar>Nätverks- och Internetproxy>
- Under Manuell proxykonfiguration kontrollerar du att proxyservern är inställd på
127.0.0.1:8000
Om Dev Proxy inte är registrerad som systemproxy:
Kontrollera konfigurationen för Dev Proxy. Kör devproxy config för att öppna konfigurationsfilen och kontrollera att den inte innehåller:
{
"asSystemProxy": false
}
Om den här inställningen finns och är inställd på falsetar du bort den eller anger den till trueoch startar sedan om Dev Proxy.
Tittar du på rätt URL:er?
Dev Proxy fångar bara upp begäranden till URL:er som matchar mönster i konfigurationen urlsToWatch .
Så här kontrollerar du:
- Titta på Dev Proxy-startutdata för listan över URL:er som övervakas
- Jämför dem med den URL som appen anropar
Vanliga problem:
-
Jokertecken saknas:
https://api.example.commatchar intehttps://api.example.com/users. Användhttps://api.example.com/*i stället. - Fel domän: Dubbelkolla domännamnet, inklusive underdomäner
- HTTP vs HTTPS: Kontrollera att protokollet matchar
Så här testar du URL-mönstret:
devproxy --urls-to-watch "https://your-api.com/*"
Gör sedan en begäran till ditt API och kontrollera om Dev Proxy loggar det.
Använder du rätt konfigurationsfil?
Dev Proxy kanske använder en annan konfigurationsfil än du förväntar dig.
Så här hittar Dev Proxy konfigurationsfiler:
- Om du anger
--config-fileanvänder Dev Proxy filen - Annars letar Dev Proxy efter
devproxyrc.jsoni den aktuella katalogen - Om det inte hittas använder Dev Proxy standardinställningar
Så här kontrollerar du vilken konfigurationsfil som används:
Kör Dev Proxy i felsökningsläge:
devproxy --log-level debug
Leta efter utdata som visar vilken konfigurationsfil som läses in.
Så här anger du uttryckligen en konfigurationsfil:
devproxy --config-file ./my-config.json
Använder du Dev Proxy med ett Node.js program?
Node.js använder inte systemproxyinställningar automatiskt. Du måste konfigurera din Node.js app så att den använder proxyn explicit.
Solution:
global-agent Använd paketet eller konfigurera HTTP-biblioteket för att använda proxyn. Mer information finns i Använda Dev Proxy med Node.js program .
Snabbkorrigering med global agent:
Installera global-agent:
npm install global-agentLägg till i appens startpunkt:
import { bootstrap } from 'global-agent'; bootstrap();Starta appen med proxymiljövariabler:
NODE_TLS_REJECT_UNAUTHORIZED=0 GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8000 node app.js
Använder du Dev Proxy med PowerShell i Windows?
PowerShell använder inte automatiskt systemproxyinställningar för webbförfrågningar som görs med Invoke-WebRequest eller Invoke-RestMethod.
Solution:
Konfigurera PowerShell att använda proxyn genom att ange parametern -Proxy :
Invoke-WebRequest -Uri "https://api.example.com/data" -Proxy "http://127.0.0.1:8000"
Eller ange proxyn för hela sessionen:
$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"
Om du använder PowerShell 7+ kan du också använda:
[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy("http://127.0.0.1:8000")
Andra plattformar och ramverk
Om du använder andra plattformar, kontrollera följande guider:
| Plattform | Guide |
|---|---|
| .NET-applikationer | Använda Dev Proxy med .NET-program |
| .NET 4.8-applikationer | .NET 4.8-appar kräver särskild konfiguration |
| Docker-containrar | Använda Dev Proxy i en Docker-container |
| SharePoint Framework | Använda Dev Proxy med SPFx |
Symptom: Begäranden fångas upp men skickas oförändrade
Dev Proxy visar dina begäranden i utdata, men de ändras inte, hånas eller returnerar simulerade fel.
Är dina plugin-program aktiverade?
Kontrollera att de plugin-program som du vill använda är aktiverade i konfigurationen.
Så här kontrollerar du:
Öppna konfigurationsfilen och kontrollera att:
- Plugin-programmet visas i matrisen
plugins - Plugin-programmet har
"enabled": true
{
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
]
}
Är dina plugin-program i rätt ordning?
Plugin-ordningen är viktig i Dev Proxy. Plugin-program körs i den ordning de visas, och vissa plugin-program kan sluta bearbetas innan andra körs.
Vanligt problem:
Om du har MockResponsePlugin före GenericRandomErrorPlugin, och en mock matchar din begäran, körs pluginen för slumpmässiga fel aldrig.
Solution:
Ordna plugin-program i den ordning du vill att de ska bearbeta begäranden. Mer information finns i Varför utlöses inte slumpmässiga fel när du använder mocks?.
Matchar ditt modell-URL-mönster begäran?
För falska svar måste URL-mönstret exakt matcha begärande-URL:en.
Saker att kontrollera:
- Frågesträngsparametrar:
https://api.example.com/users?id=1matchar intehttps://api.example.com/users - Avslutande snedstreck:
https://api.example.com/users/matchar intehttps://api.example.com/users - Skiftlägeskänslighet: URL-sökvägar är skiftlägeskänsliga
Är begärandemetoden korrekt?
Mockar är metodspecifika. En mock för GET begäranden matchar inte POST begäranden.
Så här kontrollerar du:
I din mocks-fil kontrollerar du att egenskapen method matchar din begäran:
{
"request": {
"url": "https://api.example.com/users",
"method": "GET"
},
"response": {
"statusCode": 200,
"body": { "users": [] }
}
}
Symptom: SSL/certifikatfel i din app
Din app genererar SSL- eller certifikatfel när du försöker göra begäranden via Dev Proxy.
Har du Dev Proxy-certifikatet installerat?
Dev Proxy använder ett självsignerat certifikat för att dekryptera HTTPS-trafik. Systemet måste lita på det här certifikatet.
Solution:
Kör certifikatinstallationskommandot:
devproxy cert ensure
Det här kommandot installerar och litar på Dev Proxy-certifikatet i systemet.
Är certifikatet pålitligt?
Certifikatet kan vara installerat men inte betrott.
Så här kontrollerar du macOS:
- Öppna nyckelringsåtkomst
- Sök efter "Dev Proxy"
- Dubbelklicka på certifikatet
- Expandera förtroende
- Kontrollera att SSL (Secure Sockets Layer) är inställt på Always Trust
Så här kontrollerar du i Windows:
- Kör
certmgr.msc - Gå till Certifikat för betrodda rotcertifikatutfärdare>Certifikat
- Leta efter Dev Proxy-certifikatet
Om certifikatet inte är betrott:
Ta bort och installera om certifikatet:
devproxy cert remove
devproxy cert ensure
Använder du Node.js?
Node.js använder inte systemcertifikatarkivet som standard. Du måste antingen:
Alternativ 1: Inaktivera certifikatverifiering (endast utveckling):
NODE_TLS_REJECT_UNAUTHORIZED=0 node app.js
Varning
Använd NODE_TLS_REJECT_UNAUTHORIZED=0 aldrig i produktion. Inaktiverar verifiering av alla certifikat.
Alternativ 2: Lägg till Dev Proxy-certifikatet i Node.js:
Exportera Dev Proxy-certifikatet och ange NODE_EXTRA_CA_CERTS miljövariabeln:
NODE_EXTRA_CA_CERTS=/path/to/devproxy-cert.pem node app.js
Använder du en annan exekveringsmiljö eller ett annat ramverk?
Olika plattformar hanterar certifikat på olika sätt:
| Plattform | Lösning |
|---|---|
| python | Använda REQUESTS_CA_BUNDLE variabler eller SSL_CERT_FILE miljövariabler |
| Java | Importera certifikat till Java-nyckelarkiv med hjälp av keytool |
| .NET | Certifikatet är vanligtvis betrott via systembutiken |
| Docker | Montera certifikatet och uppdatera CA-certifikaten i containern |
Andra vanliga problem
Alla begäranden misslyckas med gateway-timeout
Orsak:
Dev Proxy kan inte nå mål-API:et.
Solution:
Se Varför misslyckas alla begäranden med gateway-timeout?
Ingen Internetanslutning efter användning av Dev Proxy
Orsak:
Dev Proxy avregistreras inte korrekt som systemproxy.
Solution:
Se Varför fungerar inte min Internetanslutning när jag har använt proxyn?
Få 429 svar oväntat
Orsak:
Frekvensbegränsnings-plugin-program är aktiverade och konfigurerade.
Solution:
Se Varför får jag hela 429 svar?
Databasfel
| Fel | Lösning |
|---|---|
| Initieringsfel för SqliteConnection | Åtgärda SQLite-konfiguration |
| "Databasdiskens avbildning är felaktigt formaterad" | Återskapa databasen |
Få mer hjälp
Om du inte hittar någon lösning:
-
Aktivera felsökningsloggning: Kör
devproxy --log-level debugför detaljerade utdata - Sök efter befintliga problem: Dev Proxy GitHub-problem
- Be om hjälp: Få hjälp och support