Ответ
Charles Proxy предоставляет несколько ключевых функций для модификации сетевого трафика:
Основные инструменты:
- Breakpoints (Точки останова): Позволяют перехватить запрос или ответ перед его отправкой/получением, вручную изменить данные и продолжить выполнение.
- Пример: Изменить
user_idв теле POST-запроса или статус-код в ответе сервера.
- Пример: Изменить
- Map Local / Map Remote:
- Map Local: Заменяет ответ от удаленного сервера содержимым локального файла (например, JSON). Используется для тестирования различных сценариев ответа API.
- Map Remote: Перенаправляет запросы с одного URL на другой, что полезно для тестирования с разными окружениями.
- Rewrite Rules: Автоматическое изменение запросов и ответов на основе заранее заданных правил (поиск и замена).
- Throttling (Ограничение скорости): Эмуляция медленных сетевых условий (2G, 3G) для проверки поведения приложения.
Пример скрипта (Charles Proxy Local Rewrite) для добавления параметра отладки:
// Этот скрипт добавит параметр debug=true ко всем запросам к api.example.com
if (oRequest.host().contains("api.example.com")) {
oRequest.url().addQueryParameter("debug", "true");
}
Важно: Для перехвата HTTPS-трафика необходимо установить корневой сертификат Charles на тестовое устройство или в эмулятор.