Ответ
Charles Proxy позволяет подменять ответы сервера двумя основными способами: Breakpoints и Map Local/Remote.
1. Использование Breakpoints (Точки останова)
Позволяет вручную отредактировать ответ перед его отправкой клиенту.
- Включите Proxy → Breakpoint Settings.
- Добавьте URL (например,
*example.com/api/data*). - При срабатывании запроса Charles приостановит его.
- Во вкладке Edit Response можно изменить статус-код, заголовки или тело (например, JSON).
- Нажмите Execute, чтобы отправить модифицированный ответ клиенту.
2. Использование Map Local
Автоматически заменяет ответ сервера содержимым локального файла.
- В меню выберите Tools → Map Local.
- Включите опцию Enable Map Local.
- Добавьте новое правило: укажите URL и выберите локальный файл (например,
mock_response.json).
Пример содержимого mock_response.json:
{
"status": "error",
"code": 500,
"message": "Серверная ошибка для тестирования"
}
Применение: Тестирование обработки ошибок, проверка UI при различных данных, имитация медленных ответов (через Throttle), отладка фронтенда без бэкенда.
Ответ 18+ 🔞
А, Чарльз Прокси, блядь! Ну инструмент, ёпта, просто песня. Хочешь серверу еблеть мозги и подсовывать клиенту левые ответы? Легко, сука, как два пальца обоссать.
Вот два главных способа, как это провернуть, без всякой этой вашей магии.
1. Breakpoints (Точки останова) — ручной режим, для тонкой настройки
Это когда ты, как хирург-садист, останавливаешь запрос и начинаешь его потрошить своими кривыми ручонками.
- Включи эту хуйню: Proxy → Breakpoint Settings.
- Добавь URL, который хочешь ломать. Например,
*api.moishop.com/getPrices*. Звёздочки — это чтобы накрыть всё, блядь, керхером. - Теперь, когда твой фронтенд попытается стрясти с бэкенда цены, Чарльз его, сука, на месте заморозит! Запрос повиснет, как будто серверу кто-то на провод наступил.
- Переходи во вкладку Edit Response. Вот тут-то и начинается пиздец. Меняй что хочешь: статус-код (поставь
418 I'm a teapot, нахуй), заголовки или, самое вкусное, тело ответа. Подменил JSON, и вместо списка товаров у тебя"error": "Всё пропало, шеф". - Нажал Execute — и поехало, твой поддельный ответ уже летит в интерфейс. Удивление пиздец, у клиента.
2. Map Local — автоматический обман, для ленивых
Не хочешь каждый раз руками воевать? Сделай один раз и забудь, как страшный сон. Чарльз будет автоматом подменять ответ содержимым файла с твоего же компа.
- Tools → Map Local. Включи галочку Enable Map Local, а то нихуя не заработает.
- Добавляешь новое правило: вбиваешь URL и выбираешь локальный файлик. Например,
test_mock.json.
А в этом самом test_mock.json пишешь отсебятину, какую душа пожелает:
{
"status": "error",
"code": 500,
"message": "Серверная ошибка для тестирования"
}
И зачем это всё, спросишь? Да овердохуища применений!
- Тестирование ошибок: Хочешь посмотреть, не разъёбется ли твой красивый интерфейс, если бэкенд вернёт какую-нибудь дичь? Легко.
- Проверка UI: Нет ещё реального API, а фронт уже надо делать? Замокай ответы и работай.
- Имитация тормозов: Через Throttle можно замедлить ответ до скорости улитки, и посмотреть, как твой лоадер не захлебнётся.
- Отладка без бэкенда: Бэкендеры ушли на перекур, а тебе надо работать? Да похуй, у тебя теперь свой собственный, виртуальный бэкенд, который делает что скажешь.
Вот так вот, блядь. Никакой магии, один лишь циничный и прикладной пиздец.