Как подружить приложение charles proxy с телефоном на ос android?
Решил обратиться за помощью к Вам: кто-то пробовал подружить charles proxy с телефоном на андроид? ( просто при подключении телефона к WiFi с настроенными прокси и портом — телефон перестает выходить в интернет)
Ожидаем получить: к одной WiFi сети подключаем ПК с установленным charles proxy, и мобилку(на андроиде, но при подключении указываем доп. настройку -прокси и порт), на мобилке переходим на сайт chls.pro/ssl , скачиваем сертификат, подтверждаем подключение на ПК версии- И все начинает работать.
Что имеем по факту: на шаге с подключением мобилки к WiFi с указанием прокси и порта- высвечивается сообщение, что «сеть у нас без доступа к интернету». Получается дальнейшие шаги становятся невозможны.
После того, как ты вбиваешь прокси и порт на телефоне, у тебя на пк в чарлезе появится окно с подтверждением, подтверждаешь подключение и все работает.
А он захочет тебя завалить баг репортами
Подборка SQL тренажёров
1. Интерактивный тренажер по SQL – Stepik
В курсе большинство шагов — это практические задания на создание SQL-запросов. Каждый шаг включает минимальные теоретические аспекты по базам данных или языку SQL, примеры похожих запросов и пояснение к реализации.
2. SQL Тренажер. Бесконечное приключение 00. Интро. – Stepik
Короткий тренажер, с интересным сценарием уроков.
В игровой форме закрепляются знания SQL. Необычные задачи от простого к сложному. Планируется целый цикл интересных историй, где каждое задание это необычный квест. Сейчас пока самые простые азы.
3. SQL Academy: онлайн курс SQL и тренажёр c упражнениями ( sql-academy.org )
Всесторонний курс по SQL, спроектированный так, чтобы навсегда изменить твоё отношение к SQL. Мы вместе пройдём путь, чтобы понять как этот язык работает, и получим все необходимые навыки для эффективного применения его на работе.
4. Упражнения по SQL ( sql-ex.ru )
Сайт поможет каждому, кто хочет приобрести или повысить свои навыки в написании операторов манипуляции данными языка SQL. Суть обучения состоит в том, что вы сами пишете операторы, которые должны вернуть или изменить данные, требуемые заданием.
5. Задачи по Python, SQL, программированию и Data Science | IT Resume
Сайт с платным доступом, но часть задач беспалтные.
[Тестовое Альфа-банк] Покупки телефонов в Туле по месяцам | IT Resume
6. Master Coding for Data Science — StrataScratch
Зарубежный сайт, напоминающий leetCode, есть бесплатная версия использования
Материал подготовлен участниками чата
Или автобусов
Кто-нибудь остановите его
Вот этого человека еще нет.
Программирую. Иногда, когда хочется кое-где срезать углы по лени, я думаю о человеке, который будет после меня работать. Становиться неудобно перед ним и я все нормально реализовываю и оформляю. Этого человека еще не существует, но я его уже ненавижу
Проект за 3000 рублей
з это заказчик, я это я. описание вот прямо так скинули
з — Здравствуйте. Нужно написать проект на джанго (бэкенд). Фронтенд уже есть. Потом нужно задеплоить на удаленный сервер. ТЗ есть. Сможете сделать?
я — Здравствуйте. Дайте тз посмотрю
з — Задание: часть 1-я. Возможности проекта
Вам предстоит поработать с проектом «Фудграм» — сайтом, на котором пользователи будут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Пользователям сайта также будет доступен сервис «Список покупок». Он позволит создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
У будущего веб-приложения уже есть готовый фронтенд — это одностраничное SPA-приложение, написанное на фреймворке React. Файлы, необходимые для его сборки, хранятся в репозитории foodgram-project-react в папке frontend. Этот репозиторий вы сможете склонировать к себе на компьютер после того, как прочтёте уроки этой темы.
Кроме папки frontend в нём также есть папки backend, infra, data и docs:
В папке infra — заготовка инфраструктуры проекта: конфигурационный файл nginx и docker-compose.yml.
В папке backend лежит только скрытый файл .gitkeep. Он нужен для того, чтобы папка отображалась в Git. Эта папка предназначена для бэкенда сервиса, который вы разработаете с нуля.
В папке data подготовлен список ингредиентов с единицами измерения — это часть данных для БД, с которой вам предстоит работать. Список сохранён в форматах JSON и CSV. Данные из списка нужно будет загрузить в БД.
В папке docs — файлы спецификации API.
Ваша задача как бэкенд-разработчика — написать бэкенд, включая API, для веб-приложения «Фудграм», а также опубликовать это веб-приложение на вашем виртуальном удалённом сервере и сделать его доступным в интернете.
Никаких жёстких рамок по структуре и содержанию кода мы не устанавливаем, однако есть технические условия общего плана, которые должны быть соблюдены.
Как должно работать веб-приложение
Проект состоит из следующих страниц:
главная,
страница рецепта,
страница пользователя,
страница подписок,
избранное,
список покупок,
создание и редактирование рецепта.
Главная
Содержимое главной — список первых шести рецептов, отсортированных по дате публикации «от новых к старым». На этой странице нужно реализовать постраничную пагинацию. Остальные рецепты должны быть доступны на следующих страницах.
Страница рецепта
Здесь — полное описание рецепта. У авторизованных пользователей должна быть возможность добавить рецепт в избранное и список покупок, а также подписаться на автора рецепта.
Страница пользователя
На странице — имя пользователя, все рецепты, опубликованные пользователем и возможность подписаться на пользователя.
Страница подписок
Только у владельца аккаунта должна быть возможность просмотреть свою страницу подписок. Подписаться на публикации могут только авторизованные пользователи.
Сценарий поведения пользователя:
Пользователь переходит на страницу другого пользователя или на страницу рецепта и подписывается на публикации автора кликом по кнопке «Подписаться на автора».
Пользователь переходит на страницу «Мои подписки» и просматривает список рецептов, опубликованных теми авторами, на которых он подписался. Записи сортируются по дате публикации — от новых к старым.
При необходимости пользователь может отказаться от подписки на автора. Тогда ему нужно перейти на страницу автора или на страницу его рецепта и нажать кнопку «Отписаться от автора».
Избранное
Добавлять рецепты в избранное может только авторизованный пользователь. Сам список избранного может просмотреть только его владелец.
Сценарий поведения пользователя:
Пользователь отмечает один или несколько рецептов кликом по кнопке «Добавить в избранное».
Пользователь переходит на страницу «Список избранного» и просматривает свой список избранных рецептов.
При необходимости пользователь может удалить рецепт из избранного.
Список покупок
Работа со списком покупок должна быть доступна только авторизованным пользователям. Доступ к своему списку покупок должен быть только у владельца аккаунта.
Сценарий поведения пользователя:
Пользователь отмечает один или несколько рецептов кликом по кнопке «Добавить в покупки».
Пользователь переходит на страницу «Список покупок», там доступны все добавленные в список рецепты. Пользователь нажимает кнопку «Скачать список» и получает файл с перечнем и количеством необходимых ингредиентов для всех рецептов, сохранённых в «Списке покупок».
При необходимости пользователь может удалить рецепт из списка покупок.
Должна быть возможность скачать список покупок в формате .txt, pdf или любом другом, который вы посчитаете удобным для пользователя.
При скачивании списка покупок ингредиенты в итоговом списке не должны дублироваться; если в двух рецептах есть сахар (в одном рецепте 5 г, в другом — 10 г), то в списке должен быть один пункт: Сахар — 15 г.
В результате список покупок может выглядеть так:
Фарш (баранина и говядина) (г) — 600
Сыр плавленый (г) — 200
Лук репчатый (г) — 50
Картофель (г) — 1000
Молоко (мл) — 250
Яйцо куриное (шт) — 5
Соевый соус (ст. л.) — 8
Сахар (г) — 230
Растительное масло рафинированное (ст. л.) — 2
Соль (по вкусу) — 4
Перец чёрный (щепотка) — 3
Дизайн списка может быть любым, например, вы можете добавить в список шапку и/или подвал с информацией о вашем проекте. Обязательное условие — ингредиенты должны суммироваться.
Создание и редактирование рецепта
Доступ к этой странице должен быть только у авторизованных пользователей. Все поля на ней обязательны для заполнения.
Сценарий поведения пользователя:
Пользователь заполняет все обязательные поля.
Пользователь нажимает кнопку «Создать рецепт».
Также пользователю должна быть доступна возможность отредактировать любой рецепт, который он создал.
Фильтрация по тегам
Тег (от англ. tag, «метка», «бирка», «ярлык») — метка, которая классифицирует данные и помогает облегчить процесс поиска нужной информации в веб-приложении.
При нажатии на название тега должен выводиться список рецептов, отмеченных этим тегом. Фильтрация может проводиться по нескольким тегам в комбинации «или»: если выбрано несколько тегов — в результате должны быть показаны рецепты, которые отмечены хотя бы одним из этих тегов.
При фильтрации на странице пользователя должны фильтроваться только рецепты выбранного пользователя. Такой же принцип должен соблюдаться при фильтрации списка избранного.
Система регистрации и авторизации
В проекте должна быть доступна система регистрации и авторизации пользователей.
Обязательные поля для пользователя:
логин,
пароль,
email,
имя,
фамилия.
Уровни доступа пользователей:
гость (неавторизованный пользователь),
авторизованный пользователь,
администратор.
з — Задание: часть 2-я. «Под капотом» проекта
Какие базовые модели должны быть в проекте
Далее описаны атрибуты базовых моделей проекта. Скорее всего, кроме этих моделей, вам потребуется создать и другие. Какими они будут — вы решите на этапе проектирования архитектуры веб-приложения.
Рецепт
Атрибуты модели:
Автор публикации (пользователь).
Название.
Картинка.
Текстовое описание.
Ингредиенты — продукты для приготовления блюда по рецепту. Множественное поле с выбором из предустановленного списка и с указанием количества и единицы измерения.
Тег. Можно установить несколько тегов на один рецепт.
Время приготовления в минутах.
Все поля обязательны для заполнения.
Тег
Атрибуты модели:
Название.
Цветовой код, например, #49B64E.
Slug.
Все поля обязательны для заполнения и уникальны.
Ингредиент
Данные об ингредиентах должны храниться в нескольких связанных таблицах. На стороне пользователя ингредиент должен содержать следующие атрибуты:
Название.
Количество.
Единицы измерения.
Все поля обязательны для заполнения.
Как должна быть настроена админка
В интерфейс админ-зоны нужно вывести необходимые поля моделей и настроить фильтры:
вывести все модели с возможностью редактирования и удаление записей;
для модели пользователей добавить фильтр списка по email и имени пользователя;
для модели рецептов:
в списке рецептов вывести название и имя автора рецепта;
добавить фильтры по автору, названию рецепта, тегам;
на странице рецепта вывести общее число добавлений этого рецепта в избранное;
для модели ингредиентов:
в список вывести название ингредиента и единицы измерения;
добавить фильтр по названию.
Каким требованиям должна соответствовать инфраструктура проекта
Проект должен использовать базу данных PostgreSQL. Если вы работаете на не очень быстром компьютере — разрабатывайте проект на SQLite, а PostgreSQL подключите позже, при подготовке к деплою.
В Django-проекте должен быть файл requirements.txt со всеми зависимостями.
Проект нужно запустить в трёх контейнерах — nginx, PostgreSQL и Django через docker-compose на вашем удалённом виртуальном сервере (контейнер frontend используется лишь для подготовки файлов). Доступы к этому серверу вы получили в начале изучения модуля «Управление проектом на удалённом сервере».
Образы проекта должны быть запушены на Docker Hub.
Проект должен быть доступен по IP или доменному имени.
Данные должны сохраняться в volumes.
Что ещё должно быть в проекте
Должна обрабатываться ошибка 404.
Веб-приложение должно быть наполнено тестовыми данными: нужно создать несколько пользователей с разным уровнем доступа и хотя бы по одному рецепту от имени каждого пользователя.
з — Это дипломный проект на яндекс практикуме. Я могу дать доступ к аккаунту, чтобы можно было зайти и в удобной форме посмотреть и тз и тд
Android 11 devices and Charles
This tutorial will show you how to configure Charles and your Android 11 device so you can view your app’s network traffic in plain text. FYI, the root certificate installation steps are slightly different to older Android versions
NOTE: Since Android Nougat (7.1), Google have blocked tools like Charles from intercepting/decrypting network traffic from Play Store apps
NOTE: To proceed with this tutorial, you will need to be able to build your own Android app. Make sure the “Network Security Config File” has been added to your app’s repo (see more details here and here).
Be able to build your own Android app
Make sure you have setup the Charles Root certificate on your Mac
Check Wi-fi networks
Make sure your Mac and Android device are on the same Wi-Fi network
Find your Mac’s local IP address
Open Charles -> Help -> Local IP address.
Make note of the IP address as you will need to enter it into your device later
Navigate to device’s Wi-Fi proxy screen
Settings -> Wi-fi -> long press the connected Wi-Fi network to bring up the menu -> Modify -> Advanced options -> select “Manual” from the proxy drop down
NOTE: there are slight navigation differences between OS versions in how to get to your Wifi proxy settings but they should be fairly similar to these screenshots
Configure device’s proxy settings
This step will proxy all your device’s internet traffic through your laptop
- Proxy hostname: this is your Mac’s local IP address
- Proxy Port: 8888
Accept incoming network traffic from your device
On your device, open Chrome and go to a website
Return to your Mac. You should now see this prompt from Charles. Click “Allow”
Encrypted traffic from the device should now appear in Charles
Download Root certificate for device
Return to the device, open Chrome and go to chls.pro/ssl.
Install root certificate
O pen the “Setting” app -> Security -> Encryption & Credentials -> Install a Certificat e -> CA certificate -> Install anyways -> tap on the certificate
Android may prompt you to enter pin, password or fingerprint before installing the root certificate
Verify root certificate has been “trusted”
Return to Encryption & Credentials. Tap Trusted credentials -> USER
You should now see a certificate from “XK72 Ltd” appear
Enable SSL proxying to view traffic in plain text
Return to Charles, right click the network request you are interested in and click the “Enable SSL Proxying” option
FYI, I am using an Android app a friend created to demonstrate decrypting Android app traffic
NOTE: As mentioned at the start of the article, you need the ability to build your own Android app to view decrypted traffic. This step will not work with an app downloaded from the Play Store
Kill and Reopen app
Kill and reopen the app. You should now see the network request details in plain text
How to set up Charles Proxy for mobile and web apps?
Ever wondered how to maintain quality of software even in worst-case scenarios be it network failures or server breakdown?
One of the solutions to the above scenario is replicating the possible failure environment by configuring Charles proxy.
Let’s understand how this tool helps in providing the solution to the mentioned cause in the various software apps.
Charles proxy is an interactive web debugging tool which acts as a middleware between the client (mobile or web app) and the internet. Using this tool we can configure client environment to pass all networking requests and responses through Charles proxy so that we can inspect and even change the data midstream to test how the app responds.
In Web and Internet development we are unable to see what is being sent and received between the web browser/client and the server. Without this visibility, it is difficult and time-consuming to determine exactly where the fault is. Charles makes it easy to see what is happening, so we can quickly diagnose and fix problems.
Basic Configuration
This is common for any type of app; mobile or web.
- Download Charles from the below link:https://www.charlesproxy.com/ make sure that this tool is a paid one, however, we can make use of its trial version.
2. Install the app and have a note of your machine IP address for further configuration
3. Download and install Charles root certificate on the desired remote device where the tests need to be performed i.e, android, iOS device or web browser.
4. Remote device configuration based on the Charles root certificate to be installed on various devices as follows:
IOS Simulator
Open Charles and select the option to install a root certificate on iOS simulator from :
Help>SSL Proxying>Install Charles Root Certificate in iOS Simulator
Open iOS simulator and enable Charles proxy certificate from settings as:
Settings>General>About>Certificate Trust Settings
Open the app under test and validate the requests and response based on the action performed on the app. Experiment adding the breakpoints to API requests and responses.
Android Emulator
Open Emulator settings and configure the Charles proxy for a device with android version N, using either command line or from emulator settings as below:
The command for setting up manual IP on an emulator:
Configuring IP from emulator settings:
Open Charles and select the option to download the Root certificate either from mobile browser hitting chls.pro/ssl or via downloading the file on the system itself post which we can install the same to android device or emulator from:
Help>SSL Proxying>Save Charles Root Certificate…
Save the Charles root certificate to the system, copy to Emulator storage and install it as:
Emulator>Settings>Security>Trusted Credentials>Install from storage>open saved Charles Root certificate
Open the app now and validate the request and response on the Charles, Experiment adding the breakpoints to API requests and responses.
Web Browser (Chrome)
Charles proxy basic configuration remains same for web browsers as well where we install the Charles root certificate on the system and configure it for the browser on the Chrome settings as:
On macOS, please follow the instructions for the macOS above. These instructions only apply to Windows.
- In Charles go to the Help menu and choose “SSL Proxying > Save Charles Root Certificate”. Save the root certificate as a Binary Certificate (.cer) to the desktop, or somewhere where we can easily access it in the next step.
- In Chrome, open the Settings. At the bottom of the settings page, click “Advanced” to open the advanced section, then click the “Manage certificates…” button.
- Go to the “Trusted Root Certification Authorities” tab and click “Import…”.
- Find the certificate file saved from Charles in the previous step, then click Next and Finish, leaving the default options, until you complete the import. Chrome will now always trust certificates signed by Charles.
- After importing we can delete the certificate file that has been saved.
IOS Devices
Even for the devices, the concept of configuring Charles remains same as simulators just have to configure the mobile network proxy with the system and open chls.pro/ssl to get the root certificate download and enable it from settings from below steps:
Settings>General>About>Certificate Trust Settings
Android Devices
For connecting android devices configure the network proxy for the device as mentioned below.
Settings>Wifi>Connected network>Advanced>Proxy>Manual>Set host & port
After configuring it download the root certificate by either downloading to the device and installing it or via navigating to chls.pro/ssl from local device browser to download Charles root certificate.
Installation of root certificate may ask to add further security measures to devices for protecting the credentials before root certificate installation, once done the device is ready to be under Charles proxy influence to debug the network traffic.
Let’s assume we have Charles proxy setup ready on our chosen device.
Now let’s discuss how does the debugging work.
Debugging using Charles
This section focus on actual debugging of the requests and responses inspected via Charles and intercepted according to our need to replicate any particular realtime scenario. For interception there are various of its tools performing their respective functionalities, I want to discuss below few which I found very useful in debugging and ensuring the quality of app under test behaving in various network circumstance.
Breakpoints Tool
The Breakpoints tool lets us intercept requests and responses before they are passed through Charles. We can examine and edit the request or response and then decide whether to allow it to proceed or to block it.
When a request or response trips a breakpoint the Breakpoints window automatically opens in Charles and comes to the front. The Breakpoints window contains a list of the requests and responses currently intercepted and waiting for our action. Select the request or response to view and edit the contents. Then decide to Execute, Abort or Cancel the breakpoint.
For instance, the below test is for wwe.com to act as a breakpoint for any related request and response sent via the device under test.
Here, the Execute button applies any changes that we have made and lets the request or response proceed. The Abort button blocks the request or response and sends an error message to the client. The Cancel button discards any changes that we have made and lets the request or response proceed as if it wasn’t intercepted.
Rewrite Tool
The Rewrite tool enables us to create rules that modify requests and responses as they pass through Charles. Rules such as adding or changing a header or search and replace some text in the response body.
Using this tool we can set any specific API pre-configured as per our need like in the one example below I have used www.wwe.com link to test its behaviour when it throws server error with status code 500. Similarly, we can test any interdependent API and their effects on UI by rewriting it for any particular error scenario (i.e., for different response codes 409, 503, etc.)
Using this tool we can also alter the behaviours of any mobile app under test to respond as per the testing expectations and validate whether it’s ensuring the overall quality of the app or not. We can also save the mocked request and responses and share it within our team to have the tests ready.
I find this topic very interesting and worth sharing for practical hands on to debug the mobile/web networking. If you have any questions or if you think I messed up somewhere, please leave a comment.
How do I configure Charles Proxy and Android so that I can view HTTPS sessions [closed]
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago .
This post was edited and submitted for review last year and failed to reopen the post:
Original close reason(s) were not resolved
I want to view HTTPS sessions on my Android phone using Charles Proxy. I need to see the raw request/response contents for debugging my app. I’ve configured Charles by adding the host and port under "Proxy Settings" -> SSL Tab. When I run the app, all SSL calls seems to disappear quickly from the Charles. Does any one has any idea how to configure Charles Proxy and my Android device so they’ll work together? Charles documentation doesn’t have information for Android devices.
9 Answers 9
for the Android7
for the Android version below Android7
From your computer, run Charles:
Open Proxy Settings: Proxy -> Proxy Settings, Proxies Tab, check «Enable transparent HTTP proxying», and remember «Port» in heart.
SSL Proxy Settings:Proxy -> SSL Proxy Settings, SSL Proxying tab, Check “enable SSL Proxying”, and add . to Locations:
Open Access Control Settings: Proxy -> Access Control Settings. Add your local subnet to authorize machines on you local network to use the proxy from another machine/mobile.
In Android Phone:
Configure your mobile: Go to Settings -> Wireless & networks -> WiFi -> Connect or modify your network, fill in the computer IP address and Port(8888):
Get Charles SSL Certificate. Visit this url from your mobile browser: http://charlesproxy.com/getssl
In “Name the certificate” enter whatever you want
Accept the security warning and install the certificate. If you install it successful, then you probably see sth like that: In your phone, Settings -> Security -> Trusted credentials:
then you can have some test on your mobile, the encrypted https request will be shown in Charles:
Edit — this answer was for an earlier version of Charles. See @semicircle21 answer below for the proper steps for v3.10.x — much easier than this approach too. 🙂
For what it’s worth here are the step by step instructions for this. They should apply equally well in iOS too:
- Open Charles
- Go to Proxy > Proxy Settings > SSL
- Check “Enable SSL Proxying”
- Select “Add location” and enter the host name and port (if needed)
- Click ok and make sure the option is checked
- Download the Charles cert from here: Charles cert >
- Send that file to yourself in an email.
- Open the email on your device and select the cert
- In “Name the certificate” enter whatever you want
- Click OK and you should get a message that the certificate was installed
You should then be able to see the SSL files in Charles. If you want to intercept and change the values you can use the «Map Local» tool which is really awesome: