Можно ли переписать код статуса с помощью Charles Proxy?
Я использую Charles Proxy для переписывания ответа API для целей тестирования.
Если я установил точку останова, мне разрешено полностью переписать исходный ответ, как я желаю.
Однако, если я хочу автоматизировать его с помощью инструмента "Rewrite", я застрял, кажется, что вы не можете изменить код состояния:
![Rewrite Rule panel]()
Знаете ли вы, что мне что-то не хватает?
Ответы
Ответ 1
Обновление: версия 3.8 Charles Proxy была только что выпущена с возможностью переписать статус. Из примечаний к выпуску:
- Инструмент перезаписи: разрешить перезапись состояния ответа
Эта версия перезаписывает пользовательский интерфейс, добавляет новый тип правила "Статус ответа":
![enter image description here]()
Ответ 2
Это не прямой ответ на ваш вопрос, но, как отмечено в моем комментарии выше, я был в той же ситуации, и я нашел решение, используя другой инструмент, который хорошо работает для меня.
Вместо Чарльза я запускаю mitmproxy, в частности mitmdump, с этим коротким Python переписывание script:
#!/usr/bin/env python
def response(context, flow):
if '/somePath' not in flow.request.path:
return
flow.response.status_code = 404
Чтобы подключить его к прокси-серверу, я запускаю mitmdump
следующим образом:
mitmdump -s /path/to/rewriting-script.py
и он отлично работает.
Я нахожусь в OS X, и я настроил веб-прокси сетевого интерфейса на порт 127.0.0.1 8080.
Ответ 3
Используя Charles 3.8+, вы можете переписать код состояния.
В инструменте перезаписи выберите "Тип: статус ответа".
Помните, что в полях совпадения и замене полей, что ожидается, что входящие и перезаписанные статусы соответствуют формату "\d{3} .*"
. Это означает, что ваш перезаписанный статус должен содержать часть сообщения в дополнение к цифровому коду состояния.
Например:
Значение совпадения: 201. *
Заменить значение: 502 Bad Gateway
Опущение сообщения из значения замены не приведет к перезаписи строки состояния.
Вы можете просмотреть выходные сообщения инструмента "Редактировать" Чарльза в разделе "Примечания" каждой сводки вызовов.
Ответ 4
Final Edit: ответ от Marc Liyanage является наиболее правильным для этого вопроса.
Нет, нет, я не думаю, что можно переписать код состояния.
Я не могу добавить это как комментарий (новый пользователь), но один способ:
- Создайте ресурсы на сервере, который вернет вам нужные коды, или найдите те, которые делают.
- Используйте функцию Map Remote, сопоставляя ресурс, который возвращает код.
Я попытался использовать Map Local, что было бы идеально для этого, но Чарльз добавляет свой собственный код состояния OK OK ко всем возвращенным файлам.
Изменить: также вы можете использовать точки останова для отдельных ответов и изменять код.