Подтвердить что ты не робот

Можно ли переписать код статуса с помощью Charles Proxy?

Я использую Charles Proxy для переписывания ответа API для целей тестирования.

Если я установил точку останова, мне разрешено полностью переписать исходный ответ, как я желаю.

Однако, если я хочу автоматизировать его с помощью инструмента "Rewrite", я застрял, кажется, что вы не можете изменить код состояния:

Rewrite Rule panel

Знаете ли вы, что мне что-то не хватает?

4b9b3361

Ответ 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 ко всем возвращенным файлам.

Изменить: также вы можете использовать точки останова для отдельных ответов и изменять код.