Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
UKVED
Комплексные IT решения
для вашего бизнеса
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
Сопровождение 1С
  • Внедрение 1С
  • Обновление 1С
  • Обслуживание 1С
  • Поддержка 1С
  • Разработка 1C
Аренда 1С (1С:ФРЕШ)
Бухгалтерское сопровождение
Аренда сервера
  • Выделенный сервер 1C
  • Аренда сервера для 1C
  • Почтовые серверы
  • Backup серверы
Распознавание документов в 1С
Разработка мобильных приложений
Наши мобильные приложения
AmoCRM
  • Внедрение AmoCRM
  • Интеграция AmoCRM
  • Разработка виджетов AmoCRM
Системное администрирование
  • Обслуживание компьютеров
  • Обслуживание локальной сети
  • Обслуживание телефонии
IP телефония
Каталог товаров
  • 1С отчетность
  • Лицензии 1С
    • Комплексное управление ресурсами предприятия (ERP)
    • Клиентские лицензии
    • Серверные лицензии
    • Бухгалтерский и налоговый учет
    • ЗУП и кадровый учет (HRM)
    • Управление складом, логистикой и продажами
  • ТСД Клеверенс
  • ИТС
  • Тарифы ИТС
  • Наши решения
Наши внедрения
Статьи
Контакты
Комплексные IT решения
для вашего бизнеса
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Распознавание документов в 1С
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
1СFranch.pngmintsifryi_1С.png
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
UKVED
Телефоны
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Распознавание документов в 1С
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
  • 0 Корзина
  • +7 906 045 2827
    • Телефоны
    • +7 906 045 2827
  • г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
  • sale@ukved.ru
  • Пн. – Пт.: с 9:00 до 18:00
1СFranch.pngmintsifryi_1С.png
Главная
—
Статьи
—
Общее

Charles Proxy не видит запросы Flutter-приложения: как это исправить за 3 шага

Владимир Ершов, руководитель UKVED · опубликовано 22 октября 2026

Charles Proxy не видит запросы Flutter-приложения: как это исправить за 3 шага

Charles Proxy не видит запросы Flutter-приложения: как это исправить за 3 шага

Содержание
Почему Charles Proxy не видит запросы Flutter-приложения 🔍Как исправить: настроить Charles Proxy для Flutter за три шагаЧто делать, если ошибка повторяетсяЧто тестировщик находит в Charles быстрее, чем в логах 🧪Как предотвратить: прокси как часть сборки, а не ручной ритуалКак мы настраиваем тестирование во Flutter-проектах для заказчиков 🛠❓ Частые вопросы

Charles Proxy не показывает запросы Flutter-приложения, потому что Dart по умолчанию игнорирует системный прокси телефона. Чтобы увидеть трафик, укажите адрес Charles прямо в HttpClient debug-сборки, добавьте хост в SSL Proxying и установите корневой сертификат Charles на устройство. Release-сборка при этом остаётся без прокси.

Почему Charles Proxy не видит запросы Flutter-приложения 🔍

Четверг, вечер. В понедельник релиз приложения для торговых представителей. Тестировщик подключил телефон к Charles на ноутбуке, и страницы из браузера честно ложатся в список запросов. Но стоит открыть экран «Заказы» во Flutter-приложении, как Charles молчит, а на телефоне бесконечно крутится индикатор загрузки.

Причина в устройстве Flutter. Нативные приложения Android и iOS читают настройки прокси у системы. Flutter ходит в сеть через собственный сетевой слой Dart, а его HttpClient по умолчанию ищет прокси в переменных окружения, которых на телефоне нет. Системный прокси для приложения не существует, поэтому трафик идёт напрямую, мимо Charles.

Ставка тут простая. Без тела запроса и ответа никто не скажет, где сломался заказ: в приложении, на сервере или при передаче в 1С. Баг уходит разработчику с описанием «не работает», тот не воспроизводит его на своей машине, и задача несколько раз ходит между отделами. Релиз сдвигается, а представители в понедельник записывают заказы в блокнот.

Как исправить: настроить Charles Proxy для Flutter за три шага

Шаг 1. Charles и телефон в одной сети

Запустите Charles на ноутбуке. Порт прокси по умолчанию 8888, он меняется в Proxy → Proxy Settings. IP ноутбука в локальной сети показывает пункт Help → Local IP Address. Телефон и ноутбук должны находиться в одной подсети. Для эмулятора Android адрес хоста 10.0.2.2, для симулятора iOS подойдёт localhost.

Если тестируете в гостевом Wi-Fi офиса, проверьте изоляцию клиентов. Во многих гостевых сетях устройства друг друга не видят, и телефон не достучится до порта 8888.

Шаг 2. Прокси внутри приложения

Этот шаг пропускают чаще всего. В debug-сборке приложению нужно явно сказать, куда слать трафик: задать свойству findProxy у HttpClient значение «PROXY 192.168.1.10:8888», где адрес — IP ноутбука. Обычно это делают один раз, через HttpOverrides.global в функции main().

Адрес не стоит зашивать в код. Передавайте его при сборке ключом --dart-define=PROXY=192.168.1.10:8888 и читайте через String.fromEnvironment. Без параметра приложение ходит в сеть как обычно.

Шаг 3. Сертификат и SSL Proxying

Без сертификата Charles покажет хосты, но тела запросов останутся зашифрованными. На телефоне, который уже работает через прокси, откройте в браузере chls.pro/ssl и установите профиль. На iOS его дополнительно включают вручную: Настройки → Основные → Об этом устройстве → Доверие сертификатам. Затем в Charles откройте Proxy → SSL Proxying Settings и добавьте хост вашего API с портом 443.

На Android 7 и новее приложения по умолчанию не доверяют сертификатам, которые пользователь поставил сам, а Dart проверяет цепочку собственным слоем. Поэтому в debug-сборке передайте корневой сертификат Charles в SecurityContext. Запасной вариант — badCertificateCallback, но только под условием kDebugMode и только для хоста тестового API.

Что делать, если ошибка повторяется

Если трафик так и не появился, найдите свой случай в таблице.

СимптомПричинаЧто делать
Charles пуст, приложение не грузит данныеПрокси не задан в приложении, трафик идёт напрямуюЗадать findProxy в debug-сборке, проверить IP ноутбука и порт 8888
Хосты видны, тела запросов нечитаемыХост не добавлен в SSL Proxying или сертификат не включён в доверенныеДобавить хост с портом 443, на iOS включить доверие сертификату
Ошибка сертификата или handshake failed в приложенииПриложение не принимает сертификат Charles или включён pinningПередать сертификат в SecurityContext, для pinning собрать тестовый вариант без него
Телефон не соединяется с проксиГостевая сеть изолирует клиентов или порт 8888 закрыт брандмауэромПерейти в рабочую сеть, открыть порт на ноутбуке
Charles закрывается примерно через 30 минутПробный режим без лицензииЗарегистрировать лицензию Charles

Отдельная история с certificate pinning. Приложение сверяет сертификат сервера с зашитым отпечатком, Charles подставляет свой, и соединение обрывается. Отключать пиннинг в боевой сборке нельзя. Поэтому делают тестовую конфигурацию, где пиннинг выключен, а в release он всегда включён.

Что тестировщик находит в Charles быстрее, чем в логах 🧪

Когда трафик пошёл, Charles быстро показывает то, чего в логах приложения не видно. Типичные находки:

  • ✓запрос ушёл с просроченным токеном, сервер ответил 401, а приложение молча показало пустой список;
  • ✓в теле заказа количество пришло строкой вместо числа, и 1С отклонила документ;
  • ✓экран «Каталог» при каждом открытии шлёт один и тот же запрос несколько раз подряд;
  • ✓сервер вернул 500 с текстом ошибки из 1С, а пользователь увидел только «Что-то пошло не так».

Два инструмента Charles экономят больше всего времени. Breakpoints останавливают запрос или ответ и дают поправить его вручную: так проверяют, как приложение ведёт себя на ответе 500 или на пустом списке, не трогая сервер. Throttle сужает канал и добавляет задержку, чтобы увидеть, что происходит у торгового представителя на складе с плохим приёмом.

Как предотвратить: прокси как часть сборки, а не ручной ритуал

Ручная настройка ломается при каждой смене ноутбука, сети или сборки. Надёжнее вшить её в процесс разработки:

  • ✓в проекте заведены варианты сборки (flavors) dev, stage и prod, а прокси и ослабленная проверка сертификатов существуют только в dev и stage;
  • ✓адрес прокси приходит через dart-define, в репозитории его нет;
  • ✓CI-проверка роняет release-сборку, если в ней остался findProxy или badCertificateCallback;
  • ✓в репозитории лежит инструкция на одну страницу для тестировщиков: порт, где взять сертификат, как включить доверие на iOS.

Третий пункт не формальность. Забытый badCertificateCallback в release отключает проверку сертификата сервера, и трафик в публичной сети может подменить любой желающий.

Что делать с персональными данными в дампах

Сессии Charles сохраняют всё, что прошло через приложение: телефоны клиентов, имена, суммы заказов. Если тестировать на боевых данных, файл сессии становится носителем персональных данных, и на его хранение и передачу распространяется 152-ФЗ. Поэтому тестовый контур наполняют обезличенными данными, а файлы сессий не отправляют в Telegram-чаты и не прикладывают к задачам без очистки.

Как мы настраиваем тестирование во Flutter-проектах для заказчиков 🛠

Эту связку мы закладываем в проект с первого спринта, а не чиним перед релизом. В разработке мобильных приложений на Flutter мы передаём заказчику репозиторий с готовыми вариантами сборки, параметром прокси через dart-define и одностраничной инструкцией для тестировщиков. Тестировщик заказчика ставит Charles, вводит IP ноутбука и сразу видит запросы.

Для приложений, которые обмениваются данными с учётной системой, мы отдельно разбираем цепочку «приложение → сервер → 1С». При интеграции приложения с 1С Charles быстро показывает звено, где ломается заказ: приложение отправило неверное тело, сервер вернул ошибку или 1С не приняла документ. Так устроены и B2B-приложения с 1С для торговых представителей и дилеров: заказ из телефона попадает прямо в учёт.

Чем это отличается от привычной истории «разработчик сдал сборку, дальше сами»: тестовая сборка с прокси и стенд с обменом 1С готовы к началу тестирования, а не появляются после первого «у меня не воспроизводится». Тестировщикам не нужно просить разработчика пересобрать приложение ради одного запроса.

Разработка мобильного приложения у нас стоит от 500 000 ₽. Итог зависит от числа экранов и объёма интеграции с 1С, а ориентиры по остальным услугам собраны на странице цен и тарифов. Если приложение уже написано и тестировщики упираются в тишину в Charles, опишите стек: подскажем, какие правки нужны в сборке.

❓ Частые вопросы

Почему Charles не показывает трафик Flutter-приложения, хотя браузер на телефоне виден?

Dart по умолчанию не читает системный прокси телефона, поэтому Flutter-приложение ходит в сеть напрямую. Браузер использует настройки системы и попадает в Charles. Чтобы увидеть трафик приложения, задайте адрес Charles в findProxy у HttpClient в debug-сборке, например через HttpOverrides.global, и перезапустите приложение.

Как увидеть HTTPS-запросы Flutter-приложения в Charles?

Установите корневой сертификат Charles на устройство через chls.pro/ssl, на iOS включите ему доверие в настройках, добавьте хост API с портом 443 в SSL Proxying Settings. На Android в debug-сборке дополнительно передайте сертификат в SecurityContext приложения, потому что Dart не всегда принимает пользовательские сертификаты.

Можно ли оставить настройку прокси в release-сборке?

Нельзя. Прокси и ослабленная проверка сертификатов нужны только в debug и тестовых сборках. Забытый badCertificateCallback в release отключает проверку сервера, и трафик в публичной сети может подменить посторонний. Разделите варианты сборки и добавьте в CI проверку, которая падает при таких настройках в release.

Что делать, если приложение использует certificate pinning?

Для тестов соберите отдельный вариант приложения с выключенным пиннингом: Charles подставляет свой сертификат, и пиннинг рвёт соединение. В release пиннинг остаётся включённым. Так тестировщики читают трафик, а боевая сборка защищена от подмены сертификата. Заведите это отдельным вариантом сборки (flavor) с понятным названием, чтобы никто не перепутал его с релизной.

Сколько стоит разработка мобильного приложения с интеграцией 1С?

Разработка мобильного приложения на ukved.ru стоит от 500 000 ₽. Итоговая цена зависит от числа экранов, платформ и объёма обмена с 1С. Тестовые сборки с настроенным прокси и стенд для тестировщиков закладываем в проект с первого этапа. Точную оценку даём после разбора требований.

Нужно мобильное приложение для бизнеса?
Подберём стек и свяжем с 1С — смета за 1 день.
Получить смету →
Читайте также
Услуги 1САренда 1САренда сервера 1СМобильная разработка

Не помогло? Опишите вашу ошибку — разберём
Ответим сразу, без звонков и заполнения анкет. Что не получилось, какая версия 1С, что уже пробовали — этого достаточно. Сложное передадим инженеру.

Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00

Возврат к списку

Читайте также

  • Обзор Flutter-приложений для бизнеса: почему они зависают и как это исправить
  • 3 в 1: одно Flutter-приложение вместо мобильного, веб и десктопного
  • Flutter 3.47: почему после апгрейда падает сборка 1С-приложения
  • Flutter для интернет-магазина: одна кодовая база вместо двух приложений

Остались вопросы? Нужна помощь?

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

Бесплатная консультация
 
Компания
О компании
Вакансии
Каталог
1С отчетность
Лицензии 1С
ТСД Клеверенс
ИТС
Тарифы ИТС
Наши решения
Аренда сервера
Сопровождение 1С
Сопровождение бухгалтерии
Системное администрирование
Аудит сайта
IT-аутсорсинг в Москве
Услуги по серверам
Аренда сервера 1С
Аренда 1С в облаке
Распознавание PDF (ПДФ) в 1С
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
sale@ukved.ru
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
2017 - © 2026
Политика конфиденциальности Оплата Поставка Возврат Оферта Карта сайта
ООО «ВЕД» · ИНН 7720299436 · ОГРН 1157746343920 · КПП 501801001
Аккредитованная ИТ-компания — проверить в реестре Минцифры по ИНН 7720299436
0

Корзина

Очистить корзину
Ваша корзина пуста
Исправить это просто: выберите в каталоге интересующий товар и нажмите кнопку «В корзину»
В каталог
Главная 0 Корзина Каталог Контакты Услуги Бренды Отзывы Карьера Компания Проекты Лицензии Документы Блог Тарифы Цены
Мы считаем посещения сайта с помощью Яндекс.Метрики. Запись ваших действий на странице (Вебвизор) включается только с вашего согласия. Нажимая «Принять», вы соглашаетесь с Политикой конфиденциальности и Согласием на обработку ПДн.