tutorial - ¿Es posible reescribir un código de estado con Charles Proxy?
configurar charles proxy (4)
Esta no es una respuesta directa a su pregunta, pero como mencioné en mi comentario anterior, yo estaba en la misma situación y encontré una solución usando una herramienta diferente que me funciona bien.
En lugar de Charles, ejecuto mitmproxy , específicamente mitmdump , con este breve script de reescritura de Python:
#!/usr/bin/env python
def response(context, flow):
if ''/somePath'' not in flow.request.path:
return
flow.response.status_code = 404
Para conectarlo al proxy, ejecuto mitmdump
esta manera:
mitmdump -s /path/to/rewriting-script.py
y funciona genial
Estoy en OS X y configuré el proxy web de la interfaz de red en 127.0.0.1 puerto 8080.
Estoy usando Charles Proxy para reescribir una respuesta de una API para fines de prueba.
Si configuro un punto de interrupción, puedo reescribir completamente la respuesta en bruto como lo desee.
Sin embargo, si quiero automatizarlo a través de la herramienta "Reescribir", estoy atascado, parece que no puede modificar el código de estado:
¿Sabes si me estoy perdiendo algo?
Una actualización: la versión 3.8 de Charles Proxy acaba de ser lanzada, con la capacidad de reescribir el estado. De las notas de la versión :
- Herramienta de reescritura: permite la reescritura del estado de respuesta
La IU de reescritura de esta versión agrega un nuevo tipo de regla de "Estado de respuesta":
Usando Charles 3.8+, puede reescribir el código de estado.
En la herramienta de reescritura, seleccione "Tipo: estado de respuesta". En los campos coincidentes y reemplazar campos, tenga en cuenta que Charles espera que los estados entrantes y reescritos coincidan con el formato "/d{3} .*"
. Esto significa que el estado reescrito debe tener una porción de mensaje además del código de estado numérico.
Por ejemplo:
Valor de coincidencia: 201. *
Reemplazar valor: 502 Bad Gateway
Omitir el mensaje del valor de reemplazo dará como resultado la no reescritura de la línea de estado. Puede ver los mensajes de salida de la herramienta de reescritura de Charles en la sección Notas del resumen de cada llamada.
Edición final: la respuesta de Marc Liyanage es la más correcta para esta pregunta ahora.
No, no lo eres, no creo que sea posible reescribir un código de estado.
No puedo agregar esto como un comentario (nuevo usuario) pero una solución alternativa es:
- Cree recursos en un servidor que le devolverá los códigos que necesita, o encuentre los que sí lo hacen.
- Utilice la función Map Remote, asignando al recurso que devuelve el código.
Intenté utilizar Map Local, lo que sería perfecto para esto, pero Charles agrega que tiene un código de estado 200 OK para todos los archivos devueltos.
Editar: También puede usar puntos de interrupción en respuestas individuales y modificar el código.