Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Являетесь ли вы мобильным разработчиком или тестировщиком, Ю Захват пакетовинструментЭто очень помогает в нашей работе,И Чарльз — очень хороший инструмент для захвата пакетов.
Чарльз может не только помочь нам захватить данные, возвращаемые сервером, но также изменить параметры запроса и тело ответа.
По сути, Чарльз может помочь нам изменить все, что может изменить HTTP.
Поэтому, когда наш интерфейс находится на стадии макета, мы можем установить наши локальные данные JSON через Чарльза, чтобы ускорить нашу разработку.
Он также может моделировать слабую сетевую среду, чтобы помочь нам отладить работу пользователей в экстремальных сетевых условиях. Давайте вместе испытаем функции Charles.
Установлено на этой машине Charles версия Windows под платформой Charles 4.0.2
Основное содержание этой статьи:
первым прибыть Charles Перейдите на официальный сайт, чтобы загрузить программное обеспечение. Установка очень проста, просто переходите к следующему шагу.
включать start recording кнопку, как показано ниже:
Проверять Charles Номер порта, который прослушивает прокси, Proxy -> Proxy Settings , Тот, что на моей машине 8888 порт, Как показано ниже:
Взяв в качестве примера телефон Android, введите WIFI, к которому мы подключились, и настройте WIFI:
После настройки Чарльз Появится окно с вопросом, разрешить ли подключение мобильного телефона, примите Вот и все,Как показано ниже:
Если вы случайно нажмете Отрицать,также Можно найти где: Proxy -> Access Control Settings Добавьте свойМобильный IP
С указанными выше настройками Чарльз может перехватывать HTTP-запросы.
После вышеуказанных настроек мы можем перехватить сетевой запрос мобильного телефона, но если запрос HTTPS, захваченный пакет не может быть обработан, и на компьютер и мобильный телефон необходимо установить сертификат. (Help -> SSL Proxying)
Установить сертификат на свой компьютер очень просто, достаточно сделать следующий шаг без каких-либо настроек. Здесь мы говорим об установке сертификата на мобильный телефон, поскольку при установке сертификата на мобильный телефон могут возникнуть проблемы:
Нажмите на изображение выше Install Charles Root Certificate on a Mobile Device or Remote Browser , Он выдаст нам подсказки по установке:
Приведенное выше окно подсказки означает, что после настройки прокси на мобильном телефоне получите доступ к нему в мобильном браузере. chls.pro/ssl Скачать сертификат
Здесь необходимо отметить, что,Некоторые мобильные телефоны могут предлагать:Сертификат не может быть установлен, поскольку файл сертификата не может быть прочитан.
Решение:Не используйте системную загрузку Браузер,Загрузите UC или Edge Браузер с помощью стороннего браузера.
После завершения загрузки,Имя файла сертификата может быть:charles-proxy-ssl-proxying-certificate.pem
После завершения загрузки сертификата установите сертификат на мобильный телефон. Процесс следующий (в качестве примера взят мобильный телефон Xiaomi):
Откройте телефон настраивать -> Болеенастраивать -> Безопасность системы -> Установить с SD-карты , Затем введите имя собственного сертификата:
Нажмите кнопку «ОК». Некоторые мобильные телефоны могут потребовать ввода учетных данных. Просто введите пароль своего мобильного телефона.
После того, как сертификаты будут установлены на компьютер и мобильный телефон, идите к Чарльзу. SSL Proxy (Proxy -> SSL Proxying Settings )
Выполнив описанные выше шаги, вы можете перехватывать HTTPS-запросы.
В системах Android 7.0 и более поздних версий захват пакетов HTTPS может завершиться неудачей. По соображениям безопасности в Android 7.0 и более поздних версиях система по умолчанию доверяет только сертификатам системного уровня. Сертификат, добавленный пользователем (Пользователь), больше не является доверенным, то есть корневой сертификат Charles, который мы установили на устройство выше, больше не является доверенным для системы.
По соображениям безопасности мы обычно только Debug Версия позволяет перехват пакетов, но официальная версия не должна позволять перехват пакетов. Может AndroidManifest.xml Настройте политику безопасности в файле:
<application android:networkSecurityConfig="@xml/network_security_config" >
</application>
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</debug-overrides>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">182.254.116.117</domain>
<domain includeSubdomains="true">pingma.qq.com</domain>
</domain-config>
</network-security-config>
Затем создайте новую папку xml в каталоге res, а затем создайте новую папку xml. network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="system" />
<!-- В отладочной версии доверяйте сертификату, добавленному пользователем. -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
Для получения дополнительной информации о настройке политики безопасности обратитесь к официальной документации:
https://developer.android.com/training/articles/security-config.html
Можно найти в Proxy -> Throttle Settings настройки Скорость сети, также можно настроить пропускную способность (Bandwidth):
Вы можете использовать Charles для установки точки останова во время определенного сетевого запроса, чтобы вы могли точно найти определенный сетевой запрос:
Помимо ручного добавления URL-адреса, для которого требуются точки останова, указанные выше, если этот URL-адрес уже был запрошен, вы можете щелкнуть запрос правой кнопкой мыши и выбрать «Точки останова».
С помощью функции точки останова можно изменить параметры запроса и возвращаемое значение ответа. Следует отметить, что после изменения параметров запроса необходимо нажать кнопку «Выполнить». Только после успешного выполнения запроса можно изменить возвращаемое значение «Ответ».
Вы также можете изменить запрошенный URL-адрес, метод, заголовок, параметр и т. д. через Charles.
Метод модификации:Щелкните запрос правой кнопкой мыши и выберите compose кнопка
Перезаписать функцию перезаписи — это глобальные настройки, а не временная операция по клику правой кнопкой мыши по запросу. Перезапись может:
Rewriteнастраиватьпуть: Tools -> Rewrite
Rewrite, как следует из названия, представляет собой замену, поэтому он основан на замене фиксированного значения определенным значением. При добавлении правил он поддерживает регулярные выражения:
Сопоставление карт имеет два типа: один Map Remote,Другой Map Local
настраиватьпуть:Tools -> Map Local/Remote
Map Remote Как следует из названия, он сопоставляет соответствующие запросы с другим удаленным URL-адресом:
Map Local заключается в сопоставлении соответствующих запросов с локальными файлами:
Repeat Есть две функции: одна — просто повторить попытку (Повторить); Repeat advances Количество повторных попыток, которые можно сделать, и количество параллелизма.
Повторная попытка в основном используется для совместной отладки с сервером. Если возникла проблема с интерфейсом, разработчику сервера может потребоваться устранить проблему, прервав фоновый код.
В это время,Нам не нужно повторять последний запрос в приложении (может быть больше полей для заполнения и ссылка на интерфейс длиннее),Просто щелкните правой кнопкой мыши по запросу в Charles,Затем Repeat Вот и все
Repeat advances Вы можете выполнять нагрузочное тестирование на сервере, отправлять данные для записи в пакетном режиме и т. д., например:
Благодаря приведенному выше введению мы можем захватывать пакеты HTTPS Запросили, но открываем телефонTmall заходит на домашнюю страницу и находит Charles Для изображения не указан URL-адрес запроса. Объясните, пожалуйста. Charles Ни одного запроса на скачивание онлайн-картинок с Tmall на мобильные телефоны не было поймано.
В это времянужна настройка мобильного агента,скачать Drony Приложение и проведите пальцем по настраивать страница
Нажмите «Выбрать сеть», затем выберите ту, к которой вы подключены. WIFI, то есть 3 Места, где нужны настройки:
настраиватьнад Drony App Наконец, вам нужны настройки В системе мобильного телефона WIFI вариант, мы раньше были настройки Charles локальная сеть IP и Charles порт прослушивания Теперь нам нужно изменить IP на Локальная сеть, где находится Drony ИП, потому что Drony Он установлен в мобильном телефоне, поэтому вы можете IP Изменить на 127.0.0.1,порт Изменить на Drony порт прослушивания 8020
Наконец мы успешно захватилиМобильная версиякартинки,Если изображение не может быть отображено,могу поставить _.heic Удалить, оставить только .jpg суффикс, затем копировать в Браузер
Код, использованный в этой статье, находится в моем AndroidAll GitHub На складе. Помимо внедрения инструментов разработки Android, этот склад и Android программистнуждаться Освоенный стек технологий,нравиться:Архитектура программы, шаблоны проектирования, оптимизация производительности, алгоритмы структуры данных, Kotlin, Flutter, NDK, Router, RxJava, Glide, LeakCanary, Dagger2, Retrofit, OkHttp, ButterKnife, Router Подождите, продолжайте обновлять, добро пожаловать star。
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/130259.html Исходная ссылка: https://javaforall.cn