Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez ce guide pour diagnostiquer et résoudre les problèmes courants liés au proxy de développement. Commencez par votre symptôme et parcourez les questions de diagnostic pour trouver la solution.
Symptôme : le proxy de développement n’intercepte pas les demandes
Vous avez démarré le proxy de développement, mais les requêtes de votre application ne s’affichent pas dans la sortie du proxy de développement. Parcourez ces questions pour identifier la cause.
Le proxy de développement est-il en cours d’exécution ?
Vérifiez que le proxy de développement est en cours d’exécution et prêt à intercepter les requêtes.
Que recherchez-vous :
Après avoir démarré le proxy de développement, vous devez voir une sortie similaire à :
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
Si vous ne voyez pas cette sortie :
- Vérifiez que le proxy de développement est installé correctement en exécutant
devproxy --version - Si vous obtenez une erreur, réinstallez le proxy de développement
Le proxy de développement est-il inscrit en tant que proxy système ?
Le proxy de développement doit être inscrit en tant que proxy système pour intercepter automatiquement les requêtes. Si ce n’est pas le cas, les demandes de votre application contournent entièrement le proxy de développement.
Comment vérifier sur macOS :
- Ouvrir Paramètres du système>Réseau
- Sélectionner votre connexion réseau active
- Accédez à Détails...>Proxy
- Recherchez le proxy HTTP sécurisé (HTTPS) défini sur
127.0.0.1:8000
Comment vérifier sur Windows :
- Ouvrir
Paramètres Réseau & Internet Proxy - Sous Configuration manuelle du proxy, vérifiez que le serveur proxy est défini sur
127.0.0.1:8000
Si le proxy de développement n’est pas inscrit en tant que proxy système :
Vérifiez la configuration de votre proxy de développement. Exécutez devproxy config pour ouvrir le fichier de configuration et vérifiez qu’il ne contient pas :
{
"asSystemProxy": false
}
Si ce paramètre existe et est défini sur false, supprimez-le ou définissez-le truesur , puis redémarrez le proxy de développement.
Regardez-vous les URL correctes ?
Le proxy de développement intercepte uniquement les requêtes adressées aux URL qui correspondent aux modèles de la urlsToWatch configuration.
Voici comment vérifier :
- Examinez la sortie de démarrage du proxy de développement pour obtenir la liste des URL surveillées
- Comparez-les avec l’URL que votre application appelle
Problèmes courants :
-
Caractères génériques manquants :
https://api.example.comne correspondhttps://api.example.com/userspas . Utilisezhttps://api.example.com/*à la place. - Domaine incorrect : Vérifiez le nom de domaine, y compris les sous-domaines
- HTTP et HTTPS : vérifiez que le protocole correspond
Pour tester votre modèle d’URL :
devproxy --urls-to-watch "https://your-api.com/*"
Effectuez ensuite une demande à votre API et vérifiez si le proxy de développement l’enregistre.
Utilisez-vous le fichier de configuration approprié ?
Le proxy de développement peut utiliser un fichier de configuration différent de celui attendu.
Comment le proxy de développement trouve les fichiers de configuration :
- Si vous spécifiez
--config-file, dev Proxy utilise ce fichier - Sinon, le proxy de développement recherche
devproxyrc.jsondans le répertoire actif - S’il est introuvable, le proxy de développement utilise les paramètres par défaut
Pour vérifier le fichier de configuration utilisé :
Exécutez le proxy de développement avec la journalisation en mode débogage :
devproxy --log-level debug
Recherchez la sortie qui indique le fichier de configuration chargé.
Pour spécifier explicitement un fichier de configuration :
devproxy --config-file ./my-config.json
Utilisez-vous le proxy de développement avec une application Node.js ?
Node.js n’utilise pas automatiquement les paramètres de proxy système. Vous devez configurer votre application Node.js pour utiliser le proxy explicitement.
Solution:
Utilisez le global-agent package ou configurez votre bibliothèque HTTP pour utiliser le proxy. Consultez Utiliser le proxy de développement avec des applications Node.js pour obtenir des instructions détaillées.
Correctif rapide avec global-agent :
Installez global-agent :
npm install global-agentAjoutez le point d’entrée de votre application :
import { bootstrap } from 'global-agent'; bootstrap();Démarrez votre application avec des variables d’environnement proxy :
NODE_TLS_REJECT_UNAUTHORIZED=0 GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8000 node app.js
Utilisez-vous le proxy de développement avec PowerShell sur Windows ?
PowerShell n’utilise pas automatiquement les paramètres de proxy système pour les requêtes web effectuées avec Invoke-WebRequest ou Invoke-RestMethod.
Solution:
Configurez PowerShell pour utiliser le proxy en définissant le -Proxy paramètre :
Invoke-WebRequest -Uri "https://api.example.com/data" -Proxy "http://127.0.0.1:8000"
Ou définissez le proxy pour l’ensemble de la session :
$env:HTTPS_PROXY = "http://127.0.0.1:8000"
$env:HTTP_PROXY = "http://127.0.0.1:8000"
Si vous utilisez PowerShell 7+, vous pouvez également utiliser :
[System.Net.WebRequest]::DefaultWebProxy = New-Object System.Net.WebProxy("http://127.0.0.1:8000")
Autres plateformes et infrastructures
Si vous utilisez d’autres plateformes, consultez les guides suivants :
| Platform | Guide |
|---|---|
| Applications .NET | Utiliser le proxy de développement avec des applications .NET |
| Applications du framework .NET 4.8 | Les applications .NET 4.8 nécessitent une configuration spéciale |
| Conteneurs Docker | Utiliser le proxy de développement dans un conteneur Docker |
| SharePoint Framework | Utiliser le proxy de développement avec SPFx |
Symptôme : les requêtes sont interceptées, mais transmises sans modification
Le proxy de développement affiche vos requêtes à l'écran, mais elles ne sont ni modifiées, ni mockées, ni retournent des erreurs simulées.
Vos plug-ins sont-ils activés ?
Vérifiez que les plug-ins que vous souhaitez utiliser sont activés dans votre configuration.
Voici comment vérifier :
Ouvrez votre fichier de configuration et vérifiez que :
- Le plug-in est répertorié dans le
pluginstableau - Le plug-in a
"enabled": true
{
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
}
]
}
Vos plug-ins sont-ils dans l’ordre correct ?
L’ordre du plug-in est important dans le proxy de développement. Les plug-ins s’exécutent dans l’ordre dans lequel ils sont répertoriés, et certains plug-ins peuvent arrêter le traitement avant que d’autres ne s’exécutent.
Problème courant :
Si vous avez MockResponsePlugin avant GenericRandomErrorPlugin, et qu’une simulation de test correspond à votre demande, le plug-in d’erreur aléatoire ne se déclenche jamais.
Solution:
Organisez les plug-ins dans l’ordre dans lequel vous souhaitez qu’ils traitent les demandes. Pour plus d’informations, consultez Pourquoi les erreurs aléatoires ne sont-elles pas générées lors de l’utilisation de mocks ?.
Votre modèle d’URL fictif correspond-il à la requête ?
Pour les réponses fictives, le modèle d’URL doit correspondre exactement à l’URL de la requête.
Éléments à vérifier :
- Paramètres de chaîne de requête :
https://api.example.com/users?id=1ne correspond pashttps://api.example.com/users - Slashes de fin :
https://api.example.com/users/ne correspond pas àhttps://api.example.com/users - Sensibilité à la casse : les chemins d’URL respectent la casse
La méthode de requête est-elle correcte ?
Les maquettes sont spécifiques à la méthode. Une simulation de GET requêtes ne correspond pas aux POST requêtes.
Voici comment vérifier :
Dans votre fichier fictif, vérifiez que la method propriété correspond à votre demande :
{
"request": {
"url": "https://api.example.com/users",
"method": "GET"
},
"response": {
"statusCode": 200,
"body": { "users": [] }
}
}
Symptôme : erreurs SSL/certificat dans votre application
Votre application lève des erreurs SSL ou de certificat lors de la tentative d’effectuer des requêtes via le proxy de développement.
Avez-vous installé le certificat du proxy de développement ?
Le proxy de développement utilise un certificat auto-signé pour déchiffrer le trafic HTTPS. Votre système doit approuver ce certificat.
Solution:
Exécutez la commande d’installation du certificat :
devproxy cert ensure
Cette commande installe et approuve le certificat proxy de développement sur votre système.
Le certificat est-il approuvé ?
Le certificat peut être installé, mais pas approuvé.
Comment vérifier sur macOS :
- Ouvrir Trousseau d'accès
- Rechercher « Proxy de développement »
- Double-cliquez sur le certificat
- Étendre la confiance
- Vérifiez que ssl (Secure Sockets Layer) est défini sur Always Trust
Comment vérifier sur Windows :
- Exécutez
certmgr.msc - Accédez à Autorités de certification racine approuvées>Certificats
- Recherchez le certificat du proxy de développement
Si le certificat n’est pas approuvé :
Supprimez et réinstallez le certificat :
devproxy cert remove
devproxy cert ensure
Utilisez-vous Node.js?
Node.js n’utilise pas le magasin de certificats système par défaut. Vous devez choisir l'une des options suivantes :
Option 1 : Désactiver la validation de certificat (développement uniquement) :
NODE_TLS_REJECT_UNAUTHORIZED=0 node app.js
Avertissement
Ne jamais utiliser NODE_TLS_REJECT_UNAUTHORIZED=0 en production. Elle désactive toutes les validations de certificat.
Option 2 : Ajouter le certificat proxy de développement à Node.js:
Exportez le certificat du proxy de développement et définissez la variable d’environnement NODE_EXTRA_CA_CERTS :
NODE_EXTRA_CA_CERTS=/path/to/devproxy-cert.pem node app.js
Utilisez-vous un autre runtime ou infrastructure ?
Différentes plateformes gèrent les certificats différemment :
| Platform | Solution |
|---|---|
| Python | Utilisez les variables d’environnement REQUESTS_CA_BUNDLE ou SSL_CERT_FILE |
| Java | Importer un certificat dans un magasin de clés Java à l’aide de keytool |
| .NET | Le certificat est généralement approuvé par le biais du magasin système |
| Docker | Monter le certificat et mettre à jour les certificats d’autorité de certification dans le conteneur |
Autres problèmes courants
Toutes les demandes échouent avec le délai d’expiration de la passerelle
Cause :
Le proxy de développement ne peut pas atteindre l’API cible.
Solution:
Découvrez pourquoi toutes les demandes échouent-elles avec le délai d’expiration de la passerelle ?
Aucune connexion Internet après l’utilisation du proxy de développement
Cause :
Le proxy de développement ne se désenregistre pas correctement en tant que proxy système.
Solution:
Voir Pourquoi ma connexion Internet ne fonctionne-t-elle pas après l’utilisation du proxy ?
Obtention inattendue de 429 réponses
Cause :
Les plug-ins de limitation de débit sont activés et configurés.
Solution:
Voir Pourquoi puis-je continuer à obtenir 429 réponses ?
Erreurs de base de données
| Erreur | Solution |
|---|---|
| Erreur d’initialisation sqliteConnection | Corriger la configuration SQLite |
| « Image de disque de base de données malformée » | Reconstruire la base de données |
Obtenir de l’aide supplémentaire
Si vous ne trouvez pas de solution :
-
Activer la journalisation du débogage : Exécuter
devproxy --log-level debugpour obtenir une sortie détaillée - Rechercher des problèmes existants : Problèmes GitHub du proxy de développement
- Demander de l’aide : Obtenir de l’aide et du support