J'utilise Charles Proxy pour réécrire une réponse d'une API à des fins de test.
Si je fixe un point d'arrêt, je suis autorisé à réécrire complètement la réponse brute comme je le souhaite.
Cependant, si je veux l'automatiser via l'outil "Rewrite", je suis bloqué, il semble que vous ne puissiez pas modifier le code d'état:
Savez-vous si je manque quelque chose?
Une mise à jour: la version 3.8 de Charles Proxy vient d'être publiée, avec la possibilité de réécrire le statut. À partir de notes de version :
L'interface de réécriture de cette version ajoute un nouveau type de règle "Statut de réponse":
À l'aide de Charles 3.8+, vous pouvez réécrire le code d'état.
Dans l'outil de réécriture, sélectionnez "Type: état de la réponse". Dans les champs de correspondance et de remplacement, sachez que Charles s'attend à ce que les statuts entrant et réécrit correspondent au format "\d{3} .*"
. Cela signifie que votre statut réécrit doit avoir une partie de message en plus du code d'état numérique.
Par exemple:
Valeur de correspondance: 201. *
Remplacer la valeur: 502 Bad Gateway
L'omission du message de la valeur de remplacement n'entraînera aucune réécriture de la ligne d'état. Vous pouvez voir les messages de sortie de l'outil de réécriture de Charles dans la section Notes du résumé de chaque appel.
Ce n'est pas une réponse directe à votre question, mais comme indiqué dans mon commentaire ci-dessus, j'étais dans la même situation et j'ai trouvé une solution en utilisant un outil différent qui fonctionne bien pour moi.
Au lieu de Charles, je lance mitmproxy , spécifiquement mitmdump , avec ce court Python script de réécriture :
#!/usr/bin/env python
def response(context, flow):
if '/somePath' not in flow.request.path:
return
flow.response.status_code = 404
Pour le connecter au proxy, je lance mitmdump
comme ceci:
mitmdump -s /path/to/rewriting-script.py
et ça marche très bien.
Je suis sous OS X et j'ai configuré le proxy Web de l'interface réseau sur le port 8080 127.0.0.1.
Édition finale: la réponse de Marc Liyanage est la plus correcte pour cette question maintenant.
Non, vous ne l'êtes pas, je ne pense pas qu'il soit possible de réécrire un code d'état.
Je ne peux pas ajouter ceci en tant que commentaire (nouvel utilisateur) mais une solution de contournement est:
J'ai essayé d'utiliser Map Local, ce qui serait parfait pour cela, mais Charles ajoute son propre code d'état 200 OK à tous les fichiers retournés.
Modifier: vous pouvez également utiliser des points d'arrêt sur les réponses individuelles et modifier le code.