Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie dieses Handbuch, um häufige Dev Proxy-Probleme zu diagnostizieren und zu beheben. Beginnen Sie mit Ihrem Symptom, und arbeiten Sie durch die Diagnosefragen, um die Lösung zu finden.
Symptom: Dev Proxy fängt keine Anfragen ab
Sie haben Dev Proxy gestartet, die Anforderungen Ihrer App werden jedoch nicht in der Dev Proxy-Ausgabe angezeigt. Führen Sie diese Fragen durch, um die Ursache zu identifizieren.
Wird Dev Proxy ausgeführt?
Überprüfen Sie, ob der Dev-Proxy läuft und bereit ist, Anfragen abzufangen.
Suchschwerpunkte:
Nach dem Starten von Dev Proxy sollten Sie eine Ausgabe sehen, die ähnlich aussieht wie:
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
Wenn diese Ausgabe nicht angezeigt wird:
- Überprüfen Sie, ob Dev Proxy ordnungsgemäß installiert ist, indem Sie
devproxy --version - Wenn ein Fehler auftritt, installieren Sie Dev Proxy erneut.
Ist Dev Proxy als Systemproxy registriert?
Dev Proxy muss als Systemproxy registriert werden, um automatische Anfragen abzufangen. Andernfalls umgehen die Anforderungen Ihrer App den Dev Proxy vollständig.
So überprüfen Sie macOS:
- Öffnen Systemeinstellungen>Netzwerk
- Wählen Sie Ihre aktive Netzwerkverbindung aus.
- Zu Details wechseln...>Proxies
- Suchen Sie nach einem Sicheren HTTP-Proxy (HTTPS), der auf
127.0.0.1:8000
So überprüfen Sie Windows:
- Öffnen Sie
Einstellungen Netzwerk & Internet Proxy - Überprüfen Sie unter Manuelles Proxy-Setup, ob der Proxyserver auf
127.0.0.1:8000eingestellt ist.
Wenn Dev Proxy nicht als Systemproxy registriert ist:
Überprüfen Sie Ihre Dev Proxy-Konfiguration. Führen Sie den Befehl aus devproxy config , um die Konfigurationsdatei zu öffnen und zu überprüfen, ob sie nicht enthalten ist:
{
"asSystemProxy": false
}
Wenn diese Einstellung vorhanden ist und auf false festgelegt ist, entfernen Sie sie oder setzen Sie sie auf true festgelegt, dann starten Sie Dev Proxy neu.
Beobachten Sie die richtigen URLs?
Dev Proxy fängt nur Anforderungen an URLs ab, die Muster in der urlsToWatch Konfiguration entsprechen.
Vorgehensweise beim Überprüfen:
- Sehen Sie sich die Dev Proxy-Startausgabe für die Liste der überwachten URLs an.
- Vergleichen Sie sie mit der URL, die Ihre App aufruft.
Häufige Probleme:
-
Fehlende Wildcards:
https://api.example.comentspricht nichthttps://api.example.com/users. Verwenden Sie stattdessenhttps://api.example.com/*. - Falsche Domäne: Überprüfen Sie den Domänennamen, einschließlich Unterdomänen.
- HTTP vs HTTPS: Stellen Sie sicher, dass das Protokoll übereinstimmt
So testen Sie Ihr URL-Muster:
devproxy --urls-to-watch "https://your-api.com/*"
Stellen Sie dann eine Anforderung an Ihre API vor, und überprüfen Sie, ob der Dev-Proxy sie protokolliert.
Verwenden Sie die richtige Konfigurationsdatei?
Dev Proxy verwendet möglicherweise eine andere Konfigurationsdatei als erwartet.
Wie Dev Proxy Konfigurationsdateien findet:
- Wenn Sie angeben
--config-file, verwendet Dev Proxy diese Datei. - Andernfalls sucht Dev Proxy im aktuellen Verzeichnis nach
devproxyrc.json. - Wenn nicht gefunden, verwendet Dev Proxy Standardeinstellungen.
So überprüfen Sie, welche Konfigurationsdatei verwendet wird:
Ausführen von Dev Proxy mit Debugprotokollierung:
devproxy --log-level debug
Suchen Sie nach einer Ausgabe, die anzeigt, welche Konfigurationsdatei geladen wird.
So geben Sie eine Konfigurationsdatei explizit an:
devproxy --config-file ./my-config.json
Verwenden Sie Dev Proxy mit einer Node.js Anwendung?
Node.js verwendet keine Systemproxyeinstellungen automatisch. Sie müssen Ihre Node.js-App so konfigurieren, dass der Proxy explizit verwendet wird.
Solution:
Verwenden Sie das global-agent Paket, oder konfigurieren Sie Ihre HTTP-Bibliothek, um den Proxy zu verwenden. Ausführliche Anweisungen finden Sie unter Verwenden von Dev Proxy mit Node.js Anwendungen .
Schnellkorrektur mit global-agent:
Installieren sie den globalen Agent:
npm install global-agentFügen Sie den Einstiegspunkt Ihrer App hinzu:
import { bootstrap } from 'global-agent'; bootstrap();Starten Sie Ihre App mit Proxyumgebungsvariablen:
NODE_TLS_REJECT_UNAUTHORIZED=0 GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8000 node app.js
Verwenden Sie Dev Proxy mit PowerShell unter Windows?
PowerShell nutzt nicht automatisch die Systemproxyeinstellungen für Webanfragen, die mit Invoke-WebRequest oder Invoke-RestMethod gemacht werden.
Solution:
Konfigurieren Sie PowerShell so, dass der Proxy verwendet wird, indem Sie den -Proxy Parameter festlegen:
Invoke-WebRequest -Uri "https://api.example.com/data" -Proxy "http://127.0.0.1:8000"
Oder legen Sie den Proxy für die gesamte Sitzung fest:
$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"
Wenn Sie PowerShell 7+ verwenden, können Sie auch Folgendes verwenden:
[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy("http://127.0.0.1:8000")
Andere Plattformen und Frameworks
Wenn Sie andere Plattformen verwenden, überprüfen Sie die folgenden Leitfäden:
| Plattform | Guide |
|---|---|
| .NET-Anwendungen | Verwenden von Dev Proxy mit .NET-Anwendungen |
| .NET 4.8-Anwendungen | .NET 4.8-Apps erfordern eine spezielle Konfiguration |
| Docker-Container | Verwenden des Dev-Proxys in einem Docker-Container |
| SharePoint Framework | Verwenden von Dev Proxy mit SPFx |
Symptom: Anforderungen werden abgefangen, aber unverändert durchlaufen
Der Dev-Proxy zeigt Ihre Anfragen in der Ausgabe an, aber sie werden nicht verändert, nicht imitiert und es werden keine simulierten Fehler zurückgegeben.
Sind Ihre Plug-Ins aktiviert?
Überprüfen Sie, ob die plugins, die Sie verwenden möchten, in Ihrer Konfiguration aktiviert sind.
Vorgehensweise beim Überprüfen:
Öffnen Sie Ihre Konfigurationsdatei, und stellen Sie sicher, dass:
- Das Plug-In wird im
pluginsArray aufgeführt. - Das Plug-In hat
"enabled": true
{
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
]
}
Sind Ihre Plug-Ins in der richtigen Reihenfolge?
Die Plug-In-Reihenfolge ist in Dev Proxy wichtig. Plugins werden in der Reihenfolge ausgeführt, in der sie aufgeführt sind, und einige Plug-Ins können die Verarbeitung beenden, bevor andere ausgeführt werden.
Häufiges Problem:
Wenn Sie MockResponsePlugin vor GenericRandomErrorPlugin haben und ein Mock-Objekt Ihrer Anforderung entspricht, wird das Plugin für zufällige Fehler nie ausgeführt.
Solution:
Ordnen Sie Plugins in der Reihenfolge an, in der sie Anforderungen verarbeiten sollen. Weitere Informationen finden Sie unter Warum werden keine zufälligen Fehler angezeigt, wenn Mocks verwendet werden?.
Stimmt Ihr simuliertes URL-Muster mit der Anforderung überein?
Bei simulierten Antworten muss das URL-Muster genau mit der Anforderungs-URL übereinstimmen.
Zu überprüfende Punkte:
- Abfragezeichenfolgenparameter:
https://api.example.com/users?id=1entspricht nichthttps://api.example.com/users - Nachfolgende Schrägstriche:
https://api.example.com/users/stimmen nicht mithttps://api.example.com/usersüberein - Groß-/Kleinschreibung: BEI URL-Pfaden wird die Groß-/Kleinschreibung beachtet.
Ist die Anforderungsmethode richtig?
Mocks sind methodenspezifisch. Ein Mock-Objekt für GET Anforderungen stimmt nicht mit POST Anforderungen überein.
Vorgehensweise beim Überprüfen:
Überprüfen Sie in Ihrer Mocks-Datei, ob die method Eigenschaft Ihrer Anforderung entspricht:
{
"request": {
"url": "https://api.example.com/users",
"method": "GET"
},
"response": {
"statusCode": 200,
"body": { "users": [] }
}
}
Symptom: SSL-/Zertifikatfehler in Ihrer App
Ihre App löst SSL- oder Zertifikatfehler aus, wenn Sie versuchen, Anforderungen über Dev Proxy auszuführen.
Haben Sie das Dev Proxy-Zertifikat installiert?
Dev Proxy verwendet ein selbstsigniertes Zertifikat zum Entschlüsseln von HTTPS-Datenverkehr. Ihr System muss diesem Zertifikat vertrauen.
Solution:
Führen Sie den Befehl für die Zertifikatinstallation aus:
devproxy cert ensure
Dieser Befehl installiert und vertraut dem Dev Proxy-Zertifikat auf Ihrem System.
Ist das Zertifikat vertrauenswürdig?
Das Zertifikat ist möglicherweise installiert, aber nicht vertrauenswürdig.
So überprüfen Sie macOS:
- Öffnen des Schlüsselbundzugriffs
- Suchen nach "Dev Proxy"
- Doppelklicken Sie auf das Zertifikat.
- Trust erweitern
- Überprüfen, ob SSL (Secure Sockets Layer) auf "Always Trust" festgelegt ist
So überprüfen Sie Windows:
- Führen Sie
certmgr.mscaus. - Navigieren Sie zu Vertrauenswürdige Stammzertifizierungsstellen>Zertifikate
- Suchen Sie nach dem Dev-Proxyzertifikat
Wenn das Zertifikat nicht vertrauenswürdig ist:
Entfernen und erneutes Installieren des Zertifikats:
devproxy cert remove
devproxy cert ensure
Verwenden Sie Node.js?
Node.js verwendet standardmäßig nicht den Systemzertifikatspeicher. Sie müssen eine der folgenden Aktionen ausführen:
Option 1: Zertifikatüberprüfung deaktivieren (nur Entwicklung):
NODE_TLS_REJECT_UNAUTHORIZED=0 node app.js
Warnung
Niemals NODE_TLS_REJECT_UNAUTHORIZED=0 in der Produktion verwenden. Es deaktiviert alle Zertifikatüberprüfungen.
Option 2: Hinzufügen des Dev-Proxyzertifikats zu Node.js:
Exportieren Sie das Dev Proxy-Zertifikat, und legen Sie die NODE_EXTRA_CA_CERTS Umgebungsvariable fest:
NODE_EXTRA_CA_CERTS=/path/to/devproxy-cert.pem node app.js
Verwenden Sie eine andere Laufzeit oder ein anderes Framework?
Verschiedene Plattformen behandeln Zertifikate unterschiedlich:
| Plattform | Lösung |
|---|---|
| Python | Verwenden Sie die REQUESTS_CA_BUNDLE- oder SSL_CERT_FILE-Umgebungsvariablen |
| Java | Importieren des Zertifikats in Den Java-Keystore mithilfe von keytool |
| .NET | Das Zertifikat wird in der Regel über den Zertifikatsspeicher als vertrauenswürdig erkannt. |
| Docker | Einbinden des Zertifikats und Aktualisieren der CA-Zertifikate im Container |
Andere häufige Probleme
Alle Anforderungen schlagen mit Gateway-Timeout fehl
Ursache:
Dev Proxy kann die Ziel-API nicht erreichen.
Solution:
Lesen Sie , warum bei allen Anfragen ein Gateway-Timeout auftritt?
Keine Internetverbindung nach Verwendung des Dev-Proxys
Ursache:
Dev Proxy deregistert nicht ordnungsgemäß als Systemproxy.
Solution:
Lesen Sie , warum meine Internetverbindung nach der Verwendung des Proxys nicht funktioniert?
Unerwartetes Abrufen von 429 Antworten
Ursache:
Geschwindigkeitsbegrenzungs-Plug-Ins sind aktiviert und konfiguriert.
Solution:
Lesen Sie , warum erhalte ich weiterhin 429 Antworten?
Datenbankfehler
| Fehler | Lösung |
|---|---|
| SqliteConnection-Initialisierungsfehler | SQLite-Konfiguration korrigieren |
| "Datenbankdatenträgerimage ist falsch formatiert" | Neuerstellen der Datenbank |
Weitere Hilfe
Wenn Sie eine Lösung nicht finden können:
-
Debugprotokollierung aktivieren: Ausführen
devproxy --log-level debugfür detaillierte Ausgabe - Vorhandene Probleme durchsuchen: Probleme mit Dev-Proxy-GitHub
- Hilfe anfordern: Hilfe und Support anfordern