Problemen met Dev Proxy oplossen

Gebruik deze handleiding om veelvoorkomende problemen met Dev Proxy vast te stellen en op te lossen. Begin met uw symptoom en doorloop de diagnostische vragen om de oplossing te vinden.

Symptoom: Dev Proxy onderschept aanvragen niet

U hebt Dev Proxy gestart, maar de aanvragen van uw app worden niet weergegeven in de uitvoer van de dev-proxy. Doorloop deze vragen om de oorzaak te identificeren.

Wordt Dev Proxy uitgevoerd?

Controleer of de Dev Proxy wordt uitgevoerd en klaar is om verzoeken te onderscheppen.

Waar u naar moet zoeken:

Nadat u Dev Proxy hebt gestart, ziet u uitvoer die vergelijkbaar is met:

 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

Als u deze uitvoer niet ziet:

  • Controleer of Dev Proxy correct geïnstalleerd is door de opdracht uit te voeren devproxy --version
  • Als er een fout optreedt, installeert u Dev Proxy opnieuw

Is dev-proxy geregistreerd als de systeemproxy?

Dev Proxy moet worden geregistreerd als de systeemproxy om aanvragen automatisch te onderscheppen. Als dat niet het geval is, worden de aanvragen van uw app volledig om de Dev Proxy heen geleid.

Hoe te controleren op macOS:

  1. Systeeminstellingennetwerk>openen
  2. Selecteer uw actieve netwerkverbinding
  3. Ga naar Details...>Proxies
  4. Zoek naar Beveiligde HTTP-proxy (HTTPS) ingesteld op 127.0.0.1:8000

Hoe te controleren op Windows:

  1. Open Settings>Network & Internet>Proxy
  2. Controleer onder Handmatige proxy-instelling of de proxyserver is ingesteld op 127.0.0.1:8000

Als Dev Proxy niet is geregistreerd als systeemproxy:

Controleer de configuratie van uw dev-proxy. Voer deze opdracht uit devproxy config om het configuratiebestand te openen en te controleren of het bestand niet bevat:

{
  "asSystemProxy": false
}

Als deze instelling bestaat en is ingesteld op false, verwijder deze of stel deze in op true, en start Dev Proxy opnieuw op.

Bekijkt u de juiste URL's?

Dev Proxy onderschept alleen aanvragen naar URL's die overeenkomen met patronen in de urlsToWatch configuratie.

Hoe te controleren:

  1. Bekijk de opstartuitvoer van de Dev Proxy voor de lijst met URL's die worden bekeken
  2. Vergelijk ze met de URL die uw app aanroept

Algemene problemen:

  • Ontbrekende jokertekens: https://api.example.com komt niet overeen met https://api.example.com/users. Gebruik in plaats daarvan https://api.example.com/*.
  • Onjuist domein: controleer de domeinnaam, inclusief subdomeinen
  • HTTP versus HTTPS: zorg ervoor dat het protocol overeenkomt

Uw URL-patroon testen:

devproxy --urls-to-watch "https://your-api.com/*"

Voer vervolgens een aanvraag naar uw API uit en controleer of de Dev Proxy deze registreert.

Gebruikt u het juiste configuratiebestand?

Dev Proxy gebruikt mogelijk een ander configuratiebestand dan verwacht.

Hoe Dev Proxy configuratiebestanden vindt:

  1. Als u opgeeft --config-file, gebruikt Dev Proxy dat bestand
  2. Anders zoekt Dev Proxy naar devproxyrc.json in de huidige map
  3. Als deze niet wordt gevonden, gebruikt Dev Proxy standaardinstellingen

Ga als volgt te werk om te controleren welk configuratiebestand wordt gebruikt:

Dev Proxy uitvoeren met logboekregistratie voor foutopsporing:

devproxy --log-level debug

Zoek naar uitvoer die laat zien welk configuratiebestand is geladen.

Een configuratiebestand expliciet opgeven:

devproxy --config-file ./my-config.json

Gebruikt u Dev Proxy met een Node.js-toepassing?

Node.js maakt niet automatisch gebruik van systeemproxy-instellingen. U moet uw Node.js-app configureren om de proxy expliciet te kunnen gebruiken.

Solution:

Gebruik het global-agent pakket of configureer uw HTTP-bibliotheek om de proxy te gebruiken. Zie Dev Proxy gebruiken met Node.js toepassingen voor gedetailleerde instructies.

Snelle oplossing met globale agent:

  1. De globale agent installeren:

    npm install global-agent
    
  2. Toevoegen aan het toegangspunt van uw app:

    import { bootstrap } from 'global-agent';
    bootstrap();
    
  3. Start uw app met proxyomgevingsvariabelen:

    NODE_TLS_REJECT_UNAUTHORIZED=0 GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8000 node app.js
    

Gebruikt u Dev Proxy met PowerShell in Windows?

PowerShell maakt niet automatisch gebruik van systeemproxy-instellingen voor webaanvragen die zijn gemaakt met Invoke-WebRequest of Invoke-RestMethod.

Solution:

Configureer PowerShell om de proxy te gebruiken door de -Proxy parameter in te stellen:

Invoke-WebRequest -Uri "https://api.example.com/data" -Proxy "http://127.0.0.1:8000"

Of stel de proxy in voor de hele sessie:

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

Als u PowerShell 7+ gebruikt, kunt u ook het volgende gebruiken:

[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy("http://127.0.0.1:8000")

Andere platforms en frameworks

Als u andere platforms gebruikt, raadpleegt u deze handleidingen:

Platform Guide
.NET-toepassingen Dev Proxy gebruiken met .NET-toepassingen
.NET 4.8-toepassingen Voor .NET 4.8-apps is een speciale configuratie vereist
Docker-containers Dev Proxy gebruiken in een Docker-container
SharePoint Framework Dev Proxy gebruiken met SPFx

Symptoom: Aanvragen worden onderschept, maar worden ongewijzigd doorgegeven

Dev Proxy toont uw aanvragen in de uitvoer, maar ze worden niet gewijzigd, gemockt of geven geen gesimuleerde fouten terug.

Zijn uw invoegtoepassingen ingeschakeld?

Controleer of de invoegtoepassingen die u wilt gebruiken, zijn ingeschakeld in uw configuratie.

Hoe te controleren:

Open uw configuratiebestand en controleer of:

  1. De plugin wordt vermeld in de plugins tabel
  2. De invoegtoepassing heeft "enabled": true
{
  "plugins": [
    {
      "name": "GenericRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ]
}

Bevinden uw invoegtoepassingen zich in de juiste volgorde?

Volgorde van invoegtoepassingen is belangrijk in Dev Proxy. Invoegtoepassingen worden uitgevoerd in de volgorde waarin ze worden vermeld en sommige invoegtoepassingen kunnen stoppen met verwerken voordat anderen worden uitgevoerd.

Veelvoorkomend probleem:

Als u MockResponsePlugin hebt vóór GenericRandomErrorPlugin, en een mock overeenkomt met uw verzoek, wordt de plugin voor willekeurige fouten nooit uitgevoerd.

Solution:

Rangschik invoegtoepassingen in de volgorde waarin ze aanvragen moeten verwerken. Zie Waarom worden er geen willekeurige fouten gegenereerd bij het gebruik van mocks? voor meer informatie.

Komt uw mock-URL-patroon overeen met de aanvraag?

Voor mock-antwoorden moet het URL-patroon exact overeenkomen met de aanvraag-URL.

Wat u moet controleren:

  • Queryreeksparameters: https://api.example.com/users?id=1 komt niet overeen https://api.example.com/users
  • Afsluitende slashes: https://api.example.com/users/ komt niet overeen met https://api.example.com/users
  • Hoofdlettergevoeligheid: URL-paden zijn hoofdlettergevoelig

Is de aanvraagmethode juist?

Mocks zijn methodespecifiek. Een mock voor GET verzoeken matcht niet met POST verzoeken.

Hoe te controleren:

Controleer in het mocks-bestand of de method eigenschap overeenkomt met uw aanvraag:

{
  "request": {
    "url": "https://api.example.com/users",
    "method": "GET"
  },
  "response": {
    "statusCode": 200,
    "body": { "users": [] }
  }
}

Symptoom: SSL/certificaatfouten in uw app

Uw app genereert SSL- of certificaatfouten bij het indienen van aanvragen via Dev Proxy.

Hebt u het Dev Proxy-certificaat geïnstalleerd?

Dev Proxy maakt gebruik van een zelfondertekend certificaat om HTTPS-verkeer te ontsleutelen. Uw systeem moet dit certificaat vertrouwen.

Solution:

Voer de opdracht voor certificaatinstallatie uit:

devproxy cert ensure

Met deze opdracht wordt het Dev Proxy-certificaat op uw systeem geïnstalleerd en vertrouwd.

Wordt het certificaat vertrouwd?

Het certificaat kan worden geïnstalleerd, maar niet vertrouwd.

Hoe te controleren op macOS:

  1. Toegang tot sleutelhanger openen
  2. Zoeken naar 'Dev Proxy'
  3. Dubbelklik op het certificaat
  4. Vertrouwen uitvouwen
  5. Controleer of Secure Sockets Layer (SSL) is ingesteld op Always Trust

Hoe te controleren op Windows:

  1. Voer certmgr.msc uit
  2. Navigeer naar vertrouwde basiscertificeringsinstanties>certificaten
  3. Zoek naar het Dev Proxy-certificaat

Als het certificaat niet wordt vertrouwd:

Verwijder het certificaat en installeer het opnieuw:

devproxy cert remove
devproxy cert ensure

Gebruikt u Node.js?

Node.js maakt niet standaard gebruik van het certificaatarchief van het systeem. U moet één van de volgende doen:

Optie 1: Certificaatvalidatie uitschakelen (alleen ontwikkeling):

NODE_TLS_REJECT_UNAUTHORIZED=0 node app.js

Waarschuwing

Nooit gebruiken NODE_TLS_REJECT_UNAUTHORIZED=0 in productie. Hiermee schakelt u alle certificaatvalidatie uit.

Optie 2: Voeg het Dev Proxy-certificaat toe aan Node.js:

Exporteer het Dev Proxy-certificaat en stel de NODE_EXTRA_CA_CERTS omgevingsvariabele in:

NODE_EXTRA_CA_CERTS=/path/to/devproxy-cert.pem node app.js

Gebruikt u een andere runtime of een ander framework?

Verschillende platforms verwerken certificaten anders:

Platform Solution
Python Gebruik REQUESTS_CA_BUNDLE of SSL_CERT_FILE omgevingsvariabelen
Java Certificaat importeren in Java-sleutelarchief met behulp van keytool
.NET Certificaat wordt doorgaans vertrouwd via de systeemopslag.
Docker Het certificaat koppelen en CA-certificaten bijwerken in de container

Overige algemene problemen

Alle aanvragen mislukken met gatewaytime-out

Oorzaak:

Dev Proxy kan de doel-API niet bereiken.

Solution:

Zie Waarom mislukken alle aanvragen met time-out van de gateway?

Geen internetverbinding na het gebruik van Dev Proxy

Oorzaak:

Dev Proxy wordt niet correct als systeemproxy gederegistreerd.

Solution:

Zie Waarom werkt mijn internetverbinding niet na het gebruik van de proxy?

429 reacties onverwacht ontvangen

Oorzaak:

Frequentiebeperkingsplug-ins zijn ingeschakeld en geconfigureerd.

Solution:

Zie Waarom krijg ik 429 antwoorden?

Databasefouten

Fout Solution
Initialisatiefout SqliteConnection SQLite-configuratie herstellen
"Databaseschijfinstallatiekopieën zijn ongeldig" De database opnieuw bouwen

Meer hulp krijgen

Als u geen oplossing kunt vinden:

  1. Logboekregistratie voor foutopsporing inschakelen: uitvoeren devproxy --log-level debug voor gedetailleerde uitvoer
  2. Bestaande problemen zoeken: Problemen met Dev Proxy GitHub
  3. Hulp vragen: Hulp en ondersteuning krijgen

Zie ook