Charles error failed to bind proxy port 8888

че за фигня с чарли???
  • Печать

Страницы: [1]   Вниз

Тема: че за фигня с чарли???  (Прочитано 2632 раз)

0 Пользователей и 1 Гость просматривают эту тему.

кароче все установил а он мне при запуске выдает ошибку «failed to bind proxy port 8888:Address already ine use JVM-bind …»
вот кто подскажет че эт такое и как сделать чтоб он работал



Записан

Fallit et attollit vires in milite causa.


Ангелы Чарли? :D


Записан


not


извиняюсь за свою дурость
вот как прога называется charles 3.3.1
ну с ней по ее работоспособностью разобрался а чет взломать через нее не не могу
мож кто подскажет как в контакте приложение Лига скорости взломать?? 


bear

« Последнее редактирование: 08.09.10, 22:17:59 от bear »


Записан


извиняюсь за свою дурость
вот как прога называется charles 3.3.1
ну с ней по ее работоспособностью разобрался а чет взломать через нее не не могу
мож кто подскажет как в контакте приложение Лига скорости взломать??

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


Записан


в сообщении говорится, что программа не может открыть 8888 порт, потому что он уже используется другим приложением


Записан


в сообщении говорится, что программа не может открыть 8888 порт, потому что он уже используется другим приложением

как вариант JVM =  java virtual machine.


Записан


да это отладочная прокся на яве, аналог fiddler по ходу…


Записан


  • Печать

Страницы: [1]   Вверх

Old
07/07/2011, 19:20

 
#1

 

elite*gold: 0

Join Date: Jul 2011

Posts: 73

Received Thanks: 24

Angry
Charles Porxy error

When I run Charles, it gives me an error:

Failed to bind proxy port 8888: Cannot assign request address: JVM_Bing

Please check if Charles is already running or if another application is using the port.

WHAT THE HECK????

Any advice?

Please reply

pauliux963 is offline

 

Old
07/20/2011, 20:46

 
#2

 

elite*gold: 0

Join Date: Jun 2011

Posts: 1

Received Thanks: 0

I have same problem. :S

yakuqhan123 is offline

 

Old
01/01/2012, 00:56

 
#3

 

elite*gold: 0

Join Date: Dec 2010

Posts: 1

Received Thanks: 0

maybe u must change ur antivirus … i use kaspersky and it give me this kind of error

aremint10 is offline

 

Old
01/01/2012, 00:58

 
#4

 

legendofhsv's Avatar

 

elite*gold: 0

Join Date: Feb 2010

Posts: 1,829

Received Thanks: 425

dude, did you see the date of creation

legendofhsv is offline

 

Charles error failed to bind proxy port 8888

И так сейчас я вам расскажу о Charles. С чем его едят и как его используют.

Создание новой сессии
Открыть сессию (например сохраненную ранее)
Закрыть выбранную сессию
Сохранить сессию
Очистить сессию
Найти текст/цифры в выбранной сессии
Кнопка записи
Кнопка регулирования (как правило оч. редко используется)
Кнопка включения/выключения перехвата данных
Кнопка повтора. Повторяет выбраное(ые) процесс
Кнопка редактирования. Редактирует выбранный процесс
Кнопка утверждения выделенного процесса (практически не используется)
Кнопка задействования других кнопок на этой же панели
Настройки программы
Купить программу (у тех у кого она не зарегистрирована или не крякнута)

Полезные для нас:

Бесполезные для нас:

Исходящий запрос (со стрелочкой вверх)
Входящий запрос (со стрелочкой вниз)

Полная установка Charles:

2. В открышемся окне выбираем вашу ОС

4. Открываем скачанный файл

Теперь Ваш Charles готов к использованию!

Настройка Charles с другими браузерами:

После окончания работы в программе Charles, необходимо отключить прокси в опере, иначе просто не будут грузится страницы.

Работа с Charles:

Таким образом вы поставили на эту папку Метку перехвата данных. Т.е. запросы в этой папке будут перехватываться.
7. Далее жмем на . Для того чтобы активировать перехват данных.
8. И дальше перехватываем данные.
9. Чтобы изменять данные зайдите в эту вкладку:

10. А затем в этих подкладках пробуйте изменять

11. После того как изменили — Нажимаем кнопку «Execute»

Ошибки в программе:

Q: Почему у меня не работает Правая кнопка мыши в Charle? Что делать?
A: 1. Удалите charles.config (введите в поиске charles.config и это найдется)
2. Удалите полностью Charles (нажмите uninstall , после удалите папочку)
3. Включите CCleaner и почистите реестр
4. Перезагрузите комп
5. Установите Charles
6. И теперь все будет работать

Q: У меня в Mozila не ловит никаких запросов. Что делать?
А: 1.Заходим

4. Выставляем галочки как на скриншоте

5. Если не получилось то попробуйте просто перезапустить Браузер

Q: Что делать с этой ошибкой?

A: Зайдите в Инструменты->Charles->Enable Charles

Q: У меня не загружаются страницы когда запущен Charles. Что делать?
А: В антивирусе добавьте Charles в исключения.(Как именно добавить ищите сами т.к. у всех разные антивирусы)

Q: Выдаёт ошибку The Java installation is broken. Please uinstall and reinstall and reinstall Java from http://www.java.com/. Что делать?
A: Установите Java с этой ссылки — http://www.java.com/ru, и
предварительно старую удалите.

Q: Когда запускаю Charles у меня просто ничего не происходит. Ни ошибок, ни звуков никаких. Что делать?
A: Надо попробовать переустановить с удалением папок от программ, и с чисткой реестра, например программой CCleaner.

Для удаления заходим в панель управления, «установка и удаление программ», удалим:
— Charles
— Java™ 6 Update 14 (или похожее)
* Насчёт Mozilla не могу сказать «надо» или «не надо», желательно

Папка (и):
C:Program FilesCharles
Java – её не советую, т.к. это может повлиять на работу системы в целом.

В конфиге чарли есть 2 сообщения об ошибках, которые фатальны, и они оба про Яву, мол «пере-, установите». Возможно дело в ней Сравните этот конфиг со своим. Путь к файлу: C:Program FilesCharlesCharles.ini
Содержимое моего конфига
working.directory=.
classpath.1=lib/charles.jar
main.class=com.xk72.charles.gui.MainWithClassLoade r
vm.version.min=1.4
vm.heapsize.preferred=256M
dde.enabled=true
dde.class=com.xk72.charles.win32.Win32DDEManager
dde.server.name=Charles
dde.topic=System
single.instance=dde

[ErrorMessages]
java.not.found=A suitable Java installation was not found. Please visit http://www.java.com/ to install Java.
java.failed=The Java installation is broken. Please uninstall and reinstall Java from http://www.java.com/

Попробуйте запустить файл: C:Program FilesCharlesextraRun Charles.bat

Q: Нажимаю в Firefox на Enable Charles и у меня выдает эту ошибку — Cannot find a running Charles. Please check that Charles is running and that Mozilla Firefox Proxy is enabled in the Proxy menu in Charles. Что делать?
А: Не нужно заходить через Firefox. Просто запустите программу и все.

Q: Нажимаю в Firefox на Enable Charles и у меня выдает эту ошибку — Cannot find a running Charles. Please check that Charles is running and that Mozilla Firefox Proxy is enabled in the Proxy menu in Charles. Что делать?
А: Не нужно заходить через Firefox. Просто запустите программу и все.

Q: Что делать с этой ошибкой?

A: Жмиnt Ctrl+Alt+Dlt, затем зайдиnt на закладку «Процессы» найди там процесс JVM и убейте его. Просто Чарли у тебя сглючил и не убрал свой процесс когда ты его закрыл. При повторном запуске, естественно, он уже кричит.

Q: Что делать когда все запросы получаються такого вида?

А: Отключите Firewall или добавьть приложения в исключения и разреши все сетевые действия.

Источник

Как приручить Charles Proxy?

Привет! Многие из тех, кто приходит к нам на собеседование на должность тестировщика, с гордостью заверяют, что они могут пользоваться Charles Proxy. Но когда погружаешься в техническую часть, то становится очевидно, что кандидат только слышал об этом инструменте. Давайте уже наконец скорее приручим эту вазу!

Википедия нам сообщает, что:

Charles представляет собой кроссплатформенное приложение прокси-сервера для отладки HTTP, написанное на Java. Он позволяет пользователю просматривать HTTP, HTTPS и активированный трафик TCP-порта, доступ к которому осуществляется с локального компьютера, на него или через него. Сюда входят запросы и ответы, включая HTTP-заголовки и метаданные (например, файлы cookie, кэширование и кодирование информации), с функциями, предназначенными для помощи разработчикам и тестировщикам в анализе соединений и обмене сообщениями.

Небольшое пояснение

Сниффинг — процесс мониторинга и перехвата всех пакетов, проходящих через сеть, с помощью инструментов сниффинга (Charles Proxy).

Первые шаги

1. Установка и запуск

Для начала необходимо загрузить и установить приложение.

Если у вас не приобретена лицензия, то будет доступна 30-ти дневная пробная версия с ограничениями (функциональность не блокируется, но будут появляться окна с таймаутом 5-10 секунд до возобновления использования, а также через 30 минут будет завершаться работа приложения).

2. Начинаем сниффить трафик

Запустите Charles Proxy на MAC, зайдите в меню HelpSSL ProxyingInstall Charles Root CertificateУстановить сертификатИмпортируем сертификат.

Запустите Charles Proxy на Windows, зайдите в меню HelpSSL ProxyingInstall Charles Root Certificate

В Windows, в открывшемся окне СертификатУстановить сертификат. Выбрать «Текущий пользователь» или «Локальный пользователь». Далее вы получите уведомление от мастера импорта сертификатов, что сертификат успешно импортирован.

3. Проксирование трафика веб-браузера

Рассмотрим вариант с проксированием на примере браузера Mozilla Firefox. И установку сертификата на примере двух OS: MAC и Windows.

3.1 Windows
Для этого узнаем IP-адрес ПК: в Charles Proxy перейдем в HelpLocal IP Address. Видим, что ваш IP: 10.0.2.15 (p.s. в Local IP Address может быть несколько указано IP, например отображаться IP от VirtualBox, если после указания одного IP не будут отображаться запросы, попробуйте выбрать другой из списка).

Далее откроем Mozilla Firefox, перейдем в Параметры сетиНастроить. Выставим все как на скриншоте ниже и нажмем Ок.

Теперь необходимо перейти по ссылке chls.pro/ssl, а далее начнется автоматическая загрузка сертификата. В этот момент будет входящее соединение в Charles Proxy, необходимо нажать Allow, а также выполнить импорт сертификата:

3.2 MAC OS
Для этого узнаем IP-адрес ПК: в Charles Proxy перейдем в HelpLocal IP Address. Видим, что ваш IP: 192.168.1.50 .

Далее откроем Mozilla Firefox, перейдем в Параметры сетиНастроить.

Выставим все как на скриншоте и нажмем Ок.

Теперь необходимо перейти по ссылке chls.pro/ssl, а далее начнется автоматическая загрузка сертификата.

В этот момент будет входящее соединение, необходимо нажать Allow:

Следующим шагом обратите внимание на диалоговое окно, где необходимо выбрать Открыть в keychain:

Важным шагом, который вы должны сделать далее, это в Keychain Access сделать сертификат доверенным:



Не забудьте деактивировать Windows Proxy (если у вас ОС Windows) или Mac Proxy (в противном случае будет вам мешать).

Теперь у вас отображаются запросы, однако они зашифрованы, и кроме иероглифов ничего не видно. Чтобы видеть Request/Response в нормальном виде, нужно включить SSL Proxying и настроить домены, пакеты которых мы хотим перехватывать. А хотим мы получать запросы со всех сайтов. Для этого перейдите в раздел ProxySSL Proxying Settings.

В открывшемся диалоговом окне поставьте галочку Enable SSL Proxying, выберите раздел Include и нажмите Add.

Далее заполните поле Host значением * (как показано на скриншоте) и нажмите ОК.

В диалоговом окне «SSL Proxying Settings» нажмите ОК.

Если необходим будет определенный host, следует указать например нужный *youla* (это значит, что будет расшифровываться трафик только тот, где в запросах есть youla.

4. Настройка прокси на Android

Чтобы отображались запросы приложения Android, у вас должна стоять соответствующая сборка Android-приложения, c установленным в манифесте разрешением. Давайте представим, что такое приложение имеется, и мы хотим начать получать его трафик. Важно: устройство Android и десктоп должны быть в одной сети.

Для этого узнаем IP-адрес ПК: в Charles Proxy перейдем в HelpLocal IP Address. Видим, что ваш IP: 192.168.1.50 .

Далее возьмите в руки телефон, откройте Свойства сети → Название сети WiFi → Прокси-сервер → Вручную → Имя хоста: *ваш IP* / Порт: *8888* → Сохраните измененные свойства сети.

Теперь необходимо перейти по ссылке chls.pro/ssl или charlesproxy.com/getssl, а далее начнется автоматическая загрузка сертификата. Откройте его, задайте имя сертификата, и теперь у вас есть доступ к трафику Android-приложения.

5. Настройка прокси на iOS

Возьмите в руки iPhone, откройте Свойства сети → Название сети WiFi → Прокси-сервер → Вручную → Имя хоста: *Наш IP* / Порт: *8888* → Сохраните измененные свойства сети (важно: устройство iOS и десктоп должны быть в одной сети).

Теперь необходимо перейти по ссылке chls.pro/ssl или charlesproxy.com/getssl, «Разрешить» загрузку профиля конфигурации. Далее перейдите в НастройкиПрофиль загруженУстановить. Затем перейдите в НастройкиОсновныеОб этом устройствеДоверие сертификатам → найдите установленный сертификат и сделайте его «Доверенным».

Функциональность Charles Proxy

1. Подмена данных

Представим, что нам надо протестировать на клиенте верстку. Нужно проверить, как будет отображаться большое количество бонусов у пользователя. Один из вариантов, который многие предложат: изменить в БД количество бонусов и проверить на клиенте. Да, вы будете правы! Однако на сервере может быть кэш, и необходимо подождать какое-то время, пока количество бонусов не обновится, либо просто подключиться к самой базе и выполнить запрос — это занимает определенное время. Есть вариант проще: изменить ответ от сервера! В Charles Proxy есть три способа подмены данных:

1.1 Breakpoint

Breakpoint — это некая точка остановки запроса. Когда обнаруживается запрос из заданного списка, для дальнейшего ручного взаимодействия с параметрами запроса открывается отдельное окно. В нём перейдите к ручному изменению запросов и ответов. Удобно использовать эту функцию, когда тестируете API или разные ответы сервера.

У нас имеется приложение и профиль пользователя, у которого сейчас 45 бонусов на счету:

Запрос, в котором приходит это количество бонусов: https://api.youla.io/api/v1/user/5e6222bbbedcc5975d2375f8

Чтобы «повесить» Breakpoint на запрос, перейдите в раздел ProxyBreakpoint Settings. Далее поставьте галочку Enable BreakpointsAdd, и в открывшемся диалоговом окне «Edit Breakpoint» вставьте URL запроса, как показано на скриншоте:

Для примера поставьте две галочки «Request» и «Response». Далее нажмите OK, и ещё раз OK в окне «Breakpoint Settings». Теперь выполните запрос еще раз, то есть на клиенте заново откроется экран с профилем пользователя.

В Charles Proxy мы видим, что выполнение запроса ставится на паузу:

Здесь можно изменить параметры запроса. Но сейчас это делать не нужно, нажмите «Execute». Следом у нас ставится на паузу уже пришедший ответ от сервера. И тут как раз мы должны отредактировать «Response». Найдите нужный параметр — bonus_cnt»: 45 .

Далее измените значение параметра bonus_cnt , например, на 1 000 000 бонусов, и нажмите «Execute».

На клиенте отобразится новое количество бонусов. Мы богаты!

1.2 Rewrite

Rewrite — это инструмент, позволяющий создавать правила, которые изменяют запросы и ответы, когда те проходят через Charles Proxy. Например, можно добавлять и изменять заголовок, искать и заменять текст в теле ответа или запроса, и т.д.

Попробуем с помощью Rewrite изменить количество бонусов нашего пользователя. Для этого откройте ToolsRewrite → галочка «Enable Rewrite» → Add. В поле Name можно ввести любое название подмены, например, «Change bonus», либо оставить по умолчанию «Untitled Set».

Следующим шагом необходимо добавить в «Location» путь запроса. Для этого, в разделе LocationAdd заполните следующие поля и сохраните:

Host: https://api.youla.io

Path: /api/v1/user/5e6222bbbedcc5975d2375f8

После того, как вы добавили путь запроса, необходимо изменить сам параметр и его значение. Для этого нужно создать Rewrite Rule:

Type: Body (потому что параметр находится в теле);

Where: Response (потому что параметр находится в ответе от сервера);

Раздел Match: в «Value» укажите значение и параметр, который возвращает сервер;

Раздел Replace: в «Value» укажите значение и параметр, который вы хотите увидеть на клиенте.

Далее сохраните «Rewrite Rule» и нажмите ОК на вкладке «Rewrite Settings». На клиенте перезапросите еще раз профиль пользователя. У вас автоматически подменилось количество бонусов пользователя. Мы снова богаты!

1.3 Map Local

Map Local — инструмент, который позволяет использовать локальные файлы, словно они являются частью сервера.

Перейдите в Tools → Map Local.

Далее в окошке «Map Local Settings» нажмите Add → Хост: https://api.youla.io/api/v1/user/5e6222bbbedcc5975d2375f8 → Local path: путь на компьютере до файла. Можете использовать готовые медиа-файлы, HTML, CSS, JSON, XML. Больше подходит, конечно, разработчикам, чтобы не загружать данные на сервер для его последующего тестирования, но и тестировщик может найти грамотное применение. Мы заранее подготовили ответ, который нам будет нужен, и сохранили в файл change_bonus.json:

Сохраните введенные значения на вкладке «Edit Mapping» и на вкладке «Map Local Settings».

На клиенте перезапросите еще раз профиль пользователя. У вас автоматически подменилось количество бонусов пользователя. Мы снова богаты!

Давайте рассмотрим другие возможности инструмента Charles Proxy. И начнем с самого начала, с вкладки «Proxy».

2.1 Throttle Settings

Throttle Settings — функция, позволяющая задавать разные параметры скорости соединения с выбранным доменом.

Функция для тех, кто любит тестировать в лифте, в метро, в подземном переходе. Перейдем в ProxyThrottle Settings → галочка Enable Throttling. Если не разбираетесь во всех перечисленных пунктах, то можете использовать Throttle preset и там выбрать подходящую для теста скорость, а система автоматически заполнит остальные поля.

Если выбрать «Only for selected hosts», то можно задать определенный хост, к которому будут применяться ваши настройки. Здесь можно использовать готовые пресеты с настройками для различных типов (4G, 3G и т. д.). А также можно задать различные параметры, коротко перечислю некоторые из них:

Bandwidth — максимальный объем данных, который может быть передан с течением времени.

Utilisation — доля общей пропускной способности, которая может быть предоставлена пользователю в любой момент времени.

Latency — задержка в миллисекундах по запросу firts между клиентом и удаленным сервером.

MTU — максимальное передающее устройство для текущего пресета.

Reliability — мера вероятности, что соединение не удастся. Используется для имитации ненадежных сетевых условий.

Stability — мера вероятности, что соединение будет нестабильным и, следовательно, снизится качество. Полезно для моделирования сетей, в которых периодических падает качество связи, например, мобильных.

2.2 Reverse Proxies

Reverse proxy — обратный прокси-сервер. Обычно используется для того, чтобы принимать запросы из Интернета и перенаправлять их на один из веб-серверов.

2.3 Port Forwarding

Port Forwarding — проброс портов, который иногда называют перенаправлением портов, или туннелированием — процесс пересылки трафика, адресованного конкретному сетевому порту, с одного сетевого узла на другой. Этот метод позволяет внешнему пользователю достичь порта внутри локальной сети.

2.4 MacOS Proxy/Windows Proxy

MacOS Proxy или Windows Proxy (в зависимости от вашей ОС) — проксирование трафика с вашего веб-браузера.

Разобравшись с разделом Proxy, перейдем к разделу Tools.

3.1 No Caching

Инструмент No Caching предотвращает кэширование, манипулируя заголовками HTTP, которые управляют кэшированием ответов. Заголовки If-Modified-Since и If-None-Match удаляются из запросов, добавляются Pragma: no-cache и Cache-control: no-cache . Заголовки Expires , Last-Modified и ETag удаляются из ответов и добавляются Expires: 0 и Cache-Control: no-cache .

3.2 Block Cookies

Block Cookies — заголовок файла Cookie удаляется из запросов, предотвращая отправку значений файла из клиентского приложения (например веб-браузер) на удаленный сервер. А также из ответов удаляется заголовок Set-Cookie, предотвращая получение клиентским приложением запросов на установку файлов cookie с удаленного сервера. В настройках можно включить удаление Cookie как для всех хостов, так и для выбранных. В примере ниже включено удаление Cookie для всех запросов.

3.3 Map Remote

Map Remote — позволяет переадресовать запросы с одного URL «Map From» на другой «Map To». Подменяет хост, путь целиком или только параметры в зависимости от вашей задачи. В примере ниже подменён запрос с prod-сервера на dev-сервер.

3.4 Block List

Block List — позволяет блокировать определённые доменные имена. Когда веб-браузер попытается запросить любую страницу из заблокированного доменного имени, она заблокируется. Можно выбрать либо «Drop connection», либо возврат 403 ошибки.

3.5 DNS Spoofing

Виртуальный хостинг — это когда у вас есть несколько сайтов на одном IP-адресе, и веб-сервер определяет, какой сайт вы запрашиваете, основываясь на имени, введённом в браузере. Точнее, сервер смотрит на заголовок хоста, отправленный в запросе. Например, когда нужно подменить хосты, чтобы при вводе какого-либо адреса в браузере (скажем, api.youla.ru) запросы уходили по другому адресу (допустим, на тестовую площадку).

DNS Spoofing — перенаправляет доменное имя на определенный IP-адрес.

3.6 Mirror

Mirror — эта функция позволяет автоматически сохранять все ответы, возвращаемые в Charles Proxy. Они раскладываются локально в такой же иерархии, как на сервере. Если внезапно случился даунтайм на бэкенде, отвалилась тестовая среда и т. д., у вас уже есть готовые моки для Map Local. Активировать функцию можно так: ToolsMirror или ToolsAuto Save.

3.7 Compose

Compose — функция редактирования запросов, которые вы поймали.

Например вы добавляете в избранное какой-то товар, но почему-то он не добавляется. Вы можете отредактировать уже отправленный запрос и отправить его еще раз. Для этого необходимо выбрать нужный запрос из списка, нажать на нём правой кнопкой и выбрать Compose. Иконка у запроса поменяется, и теперь можно смело его редактировать.

После того, как вы изменили нужные значения в запросе, нажмите внизу «Execute», чтобы отправить запрос на сервер.

4. Recording Settings

Recording Settings — настройки отображения списков разрешенных и запрещенных доменов.

Во вкладке «Options» можно настроить лимит, то есть количество запросов, которое Charles Proxy может записать.

Во вкладке «Include» можно выбрать конкретный домен для отображения пакетов.

Во вкладке «Exclude» можем выбрать те домены, которые необходимо спрятать при сниффинге.

5. Focus

Focus — эта функция перемещает домен на первые позиции в списке.

6. Repeat

Repeat — отправляет на сервер запрос, идентичный выбранному.

7. Repeat Advanced

Repeat Advanced — идентично Repeat, только можно выбрать количество отправляемых запросов и задержку между ними. Эта функция пригодится при проверке реакции сервера на флуд.

Здесь Concurrency — количество пользователей, а Iterations — количество повторений каждого запроса. Также можно поставить галочку «Show results in new Session», в таком случае откроется новое окно, где будут выполняться запросы.

Источник

I have configured AVD Manager like this:

enter image description here

and configured simulator settings:

enter image description here

Charles HTTP Proxy is 8888. But When I requesting network connection with the simulator, it still not connect to charles. I did something wrong ? Or AVD can not connect charles?

asked Oct 29, 2016 at 16:19

ZeroChow's user avatar

1

As just said in a similar thread, the simulator will likely use your computer’s internet connection, unlike real devices that connect to Charlesproxy through the external http port that you specify (8888 by default).

While http traffic proxied through that port will always be recorded by Charles, recording the traffic of desktop apps like your simulator is optional. Thus the simulator’s traffic will only be recorded if you check the corresponding option in the «Proxy» menu. (In Charles on Windows, the available options are «Windows Proxy» and «Firefox Proxy», not sure which are the options on a Mac.)

Community's user avatar

answered Nov 15, 2016 at 18:30

aaadddmmm's user avatar

It is very simple as you can route your emulators traffic through terminal. The command for that will be somewhat like:-

./emulator -netdelay none -netspeed full -avd AVD_NAME -http-proxy http://SYSTEM_IP:8888

As far as settings in emulators you have to do nothing, just a simple fiddler cert would be fine. That too you can easily push though Android Device Monitor by pushing a file in emulators internal mem.

Let me know if you face any issues i would be happy to help.

Regards,

answered Feb 14, 2017 at 12:16

Akshat's user avatar

AkshatAkshat

761 silver badge9 bronze badges

Charles – программа прокси для изучения и отладки HTTPS трафика между клиентом и сервером. С его помощью можно проверить состав запроса и ответа, при необходимости изменить его. Например, чтобы увидеть как ведет себя веб-приложение при некорректном ответе от сервера, или какой ответ присылает сервер при некорректном запросе. Можно перенаправлять запросы на другой хост, эмулировать проблемы в сети и много чего еще.

Документацию можно почитать на официальном сайте, а в данной заметке я покажу основные кейсы его использования.

Установка и предварительная настройка

Установка и запуск

Скачайте и установите Charles.

При первом запуске Charles скорее всего попросит разрешения внести изменения в сетевые настройки вашего компьютера, согласитесь.

Настройка прокси

Далее перейдите в Proxy – Access Control Setting, нажмите кнопку Add и добавьте IP-адрес 0.0.0.0/0.

Charles Access Control Setting

Затем перейдите в ProxySSL Proxying Settings, установите галочку в Enable SSL Proxying, нажмите кнопку Add и добавьте локацию, в Host укажите «.», а в Port «*». Такая настройка позволит получать запросы и ответы со всех хостов. Или вы можете добавить только интересующие.

Charles Location

Установите сертификаты на компьютер: HelpSSL ProxyingInstall Charles Root Certificate.

Сharles Certificates

Укажите порт: ProxyProxy Settings – вкладка ProxiesPort: 8888.

Charles Port

Проксирование трафика веб-браузера

Если не хотите видеть запросы с ПК, перейдите на вкладку MacOS (Windows) и снимите чекбоксы. Но если целью является изучение трафика из браузера, наоборот, удостоверьтесь, что чекбоксы установлены.

Charles Proxy Settings

Когда закончите с настройками прокси, перезапустите Charles.

Настройка прокси на устройстве

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

Компьютер с Charles и устройство должны находиться в одной сети.

На устройстве, в настройках сети или Wi-Fi, укажите прокси-сервер: IP-адрес компьютера с запущенным Charles и порт 8888, или другой, который был указан при настройке прокси.

Быстро узнать IP-адрес компьютера с запущенным Charles можно через пункт меню HelpLocal IP Address.

IP address Charles

Для iPhone откройте Настройки (Settings), перейдите в настройки Wi-Fi, выберите активную Wi-Fi сеть, пролистайте экран вниз и выберите пункт Настройка прокси (Configure Proxy). Метод определения выберите Вручную (Manual) и укажите IP-адрес и порт.

Proxy iPhone

Далее нужно установить сертификат прокси-сервера.

В браузере на устройстве перейдите по адресу http://charlesproxy.com/getssl или http://chls.pro/ssl Разрешите загрузку профиля и скачайте сертификат.

Установите скачанный сертификат Charles. Процесс установки зависит от используемого устройства и может различаться.

Например, чтобы установить сертификат на iPhone откройте Настройки (Settings), перейдите в Основные (General), пролистайте вниз и выберите пункт Профили и управление устройством (Profiles & Device Management). В открывшемся меню найдите загруженный профиль сертификата, откройте его, а затем установите.

Profiles iPhone

Дополнительно может потребоваться установить доверие сертификату. Откройте Настройки (Settings) – ОсновныеОб этом устройстве (About), пролистайте вниз до конца, выберите пункт Доверие сертификатов (Certificate Trust Settings). В открывшемся окне отметьте переключателем сертификат, которому хотите дать доверие.

Certificate Trust Settings

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

Подробнее про установку сертификатов можно прочитать в документации Charles.

Теперь можно проксировать и изучать трафик.

Как смотреть трафик

Запустите Charles. На устройстве или в браузере откройте интересующий сайт или приложение. При выполнении действий на клиенте, запросы с него и ответы от сервера будут логироваться в Charles.

В режиме Structure в левой части окна отображается список запросов, сгруппированный по хостам. Выделив элемент хоста, в правой части окна будет выведена подробная информация о запросе (сверху) и ответе (снизу), в том числе метод, заголовки, куки, запрос, ответ, параметры и прочая информация.

Structure View

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

Charles Sequence View

Чтобы исключить из отображения ненужные хосты, удобно пользоваться фильтром (поле под списком хостов).

Выделив хост, в контекстном меню можно включить режим Focus, при котором запросы к интересующим хостам будут группироваться вместе, а остальные скрыты в отдельную группу.

Charles Focus

Не забывайте пользоваться Поиском (EditFind или Cmd+F). Он поможет быстро найти интересующий параметр или подстроку среди перехваченных запросов.

Charles Find

На что стоит обращать внимание:

  • запрос уходит на верный URL;
  • допустимое время между действием, отправкой запроса и получением ответа;
  • метод, код ответа, тело, параметры cоответствуют ожидаемым, значения не пустые;
  • формат данных;
  • запрос не дублируется;
  • данные отобразились на клиенте.

Как менять запросы и ответы

Задача: на лету изменить параметр в заголовке или в теле запроса и посмотреть, что вернёт сервер, либо наоборот, модифицировать ответ сервера, чтобы проверить как поведет себя клиент. 

В этом случае можно использовать инструмент Rewrite (ToolsRewrite – галочка Enable Rewrite.

Добавьте новое правило, введите хост (или оставьте пустым, тогда правило будет действовать для всех хостов), затем заполните Rewrite Rule, где укажите что на что необходимо заменить.

В примере ниже, значение поля bonus в теле ответа будет заменено со 100 на 5000.

  • Type: Body – потому что меняем параметр в теле;
  • Where: Response – потому что меняем ответ;
  • Match: в Value – значение, возвращаемое сервером;
  • Replace: в Value – значение, на которое необходимо заменить Value из Match.

Rewrite Charles

Еще задача: допустим есть лента с контентом (видео, реклама, музыка) и при тестировании нужно быстро изменить его источник без вмешательства разработчика.

Rewrite Charles

В разделе Match можно использовать регулярные выражения.

Аналогичным способом через Rewrite можно изменять, добавлять, удалять заголовки, менять коды ответа сервера, хосты и url.

Как вручную отредактировать запрос

Задача: перехватить запрос (ответ) и перед отправкой (приемом) его отредактировать. Отличие от предыдущей задачи заключается в том, что в ней данные менялись на лету по заранее заданному шаблону, здесь же редактирование осуществляется вручную.

Запросы можно редактировать используя инструмент Compose. Прежде нужно, чтобы запрос выполнился хотя бы один раз. Найдите его среди остальных запросов. В контекстном меню выберите Compose.

Charles Compose

В открывшемся окне можно изменить тело запроса, метод, протокол, url, параметры, заголовки и куки. Затем нужно нажать кнопку Execute и запрос будет отправлен с новыми данными.

Charles Execute

Инструмент Repeat в контекстном меню запроса отправит его на сервер еще раз.

Repeat Advanced – похож на Repeat, однако позволяет указать количество отправляемых запросов и задержку между ними. Данный функционал может быть полезен при проверке сервера на флуд.

С помощью инструмента Breakpoints (точки остановка) можно перехватывать и изменять не только запросы, но так же и ответы от сервера, прежде чем они попадут на клиент.

Для начала нужно включить возможность использования Breakpoints (ProxyBreakpoint SettingsEnable Breakpoints).

Далее нужно указать URL запроса, который в случае выполнения должен быть перехвачен. Это можно сделать в том же окне Breakpoint Settings, либо повесить Breakpoint через контекстное меню, выбрав ранее выполненный запрос.

Перед выполнением запроса он будет остановлен и вы сможете отредактировать его тело, метод, протокол, url, параметры, заголовки и куки.

Charles Breakpoints

Когда запрос будет отправлен, ответ так же будет перехвачен, его аналогичным способом можно отредактировать.

Как подменить хост в API

Задача: подменить продовый хост с API на тестовый. Это можно сделать двумя способами.

Первый, через инструмент Rewrite, подобно тому, как описано в предыдущем разделе.

Host Charles

Второй способ подменить API, заключается в использовании инструмента Map Remote (ToolsMap Remote).

Charles Map Remote

В зависимости от задачи можно подменить хост целиком, его часть или только параметры.

Как подменить код ответа сервера

Задача: проверить как поведет себя клиент при неожиданном коде ответа от сервера.

Как и в предыдущих двух примерах, тут подойдет инструмент Rewrite (ToolsRewrite).

Charles Response Status

Как эмулировать недоступность сервера

Задача: проверить как поведет себя клиент при недоступности хоста.

Используя инструмент Block List (ToolsBlock List), можно заблокировать доступ клиента к указанному хосту. На выбор разрыв соединения либо 403 код ответа.

Charles Block List

Инструмент Allow List (ToolsAllow List) наоборот блокирует все хосты кроме разрешенных.

Как замокать ручку или подменить файл

Задача: подменить ответ от сервера на заранее подготовленный, сохраненный локально, например, чтобы замокать ответ ручки или заменить скрипт.

Для этих целей можно использовать инструмент Map Local (ToolsMap Local).

Charles Mapping

В настройках укажите ручку или файл на сервере, а также локальный файл, который будет использован вместо них. Поддерживаются форматы HTML, CSS, JSON, XML и медиафайлы.

Как эмулировать проблемы в сети

Задача: посмотреть, как работает сервис в различных сетевых условиях.

Для этого предназначен инструмент Throttle (ProxyThrottle Settings).

Charles Throttle

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

  • Bandwidth – пропускная способность;
  • Utilisation – эффективность использования пропускной способности;
  • Latency – задержка в миллисекундах между клиентом и сервером;
  • MTU – максимальный объём данных за одну итерацию;
  • Reliability – вероятность, что соединение не удастся;
  • Stability – вероятность, что соединение будет нестабильным.

Так же можно использовать готовые предустановки из списка.

Как раздать VPN

Задача: дать доступ другому устройству в корпоративную сеть.

Если компьютер с установленным Charles имеет доступ к сети VPN, то и устройства, трафик которых проксируется, будут иметь доступ к той же сети.

Подробнее читайте в статье: Как раздать VPN через Fiddler или Charles.

Другие полезные функции

Инструмент Block Cookies – предотвращает получение клиентом запросов на установку cookie с сервера.

Инструмент No Caching предотвращает кэширование через заголовки.

MacOS Proxy или Windows Proxy разрешает или запрещает проксирование трафика из браузера, установленного на том же компьютере, что и Charles.

Инструмент Port Forwarding (проброс портов) позволяет пересылать запросы с одного порта на другой.

DNS Spoofing – перенаправляет запрос с доменного имени на указанный IP-адрес.

Mirror – автоматически сохраняет в указанную папку все ответы, возвращаемые в Charles. Затем их можно использовать как моки.

Устранение проблем

Большая часть функций Charles не будет работать если не установлены или не корректно установлены сертификаты. Это самая распространенная проблема. Вторая проблема может быть в том, что для связи клиента и сервера используется SSL соединение, но оно выключено в Charles, соответсвенно он не может его расшифровать, тем более изменить запрос или ответ.

Убедитесь, что ответ в Charles отображается в незашифрованном виде, как на скриншоте ниже. Это значит базовые настройки выполнены верно, сертификаты установлены, SSL Proxying включен.

Not Encrypted

Если же в ответе нечитаемый текст, как на скриншоте ниже, часть инструментов Charles работать не будет.

Encrypted

В этом случае проверьте, что выполнили все рекомендации по настройке описанные в начале данной статьи.

В частности удостоверьтесь, что проксирование включено для SSL соединений. Галочка в Enable SSL Proxying в ProxySSL Proxying Settings должна быть установлена, указана локация.

Сертификаты Charles должны быть установлены в системе (HelpSSL ProxyingInstall Charles Root Certificate).

Сертификаты Charles должны быть установлены на клиенте, если в качестве него выступает другое устройство.

Если клиентом является iPhone, убедитесь, что кроме того, что сертификат установлен, ему так же выдано доверие (это один из пунктов, который часто пропускают).

Дополнительную информацию про установку сертификатов можно получить в документации Charles.

Если клиентом является браузер, установленный на том же компьютере, где и Charles убедитесь, что разрешено проксирование с локального устройства (ProxyMacOS Proxy или Windows Proxy).

Делитесь интересными кейсами использования Charles и я добавлю их в статью.

Полезные ссылки

Официальный сайт Charles
Как раздать VPN через Fiddler или Charles

На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

Понравилась статья? Поделить с друзьями:
  • Charge alt failure ошибка
  • Character set system как изменить
  • Certbot renew error
  • Certbot error unrecognized arguments preferred chain isrg root x1
  • Certbot error getting validation data