Список HTTP-запросов от телефона android

Я хочу, чтобы я мог видеть HTTP-запросы, которые производит моя Galaxy S4. Я хочу создать веб-приложение и хочу использовать API, который используется в некоторых приложениях. Я точно знаю, что есть HTTP-запрос, и я хочу как можно больше захватить, но по крайней мере, URL.

До сих пор я пробовал пару вещей:

  • Look for Android apps that capture HTTP requests. До сих пор я нашел некоторые приложения, которые могут якобы делать то, что мне нужно. Но все они требуют доступа root, и я не хочу укорачивать свой телефон.

  • Look for Windows applications that tether my wifi signal, which means every request is ported through my computer. До сих пор я пробовал 1 приложение, MyPublicWIFI, и я попытался использовать netsh start hostednetwork. Приложение не отображало ни одного из URL-адресов, и сейчас оно даже не поддерживает мой Wi-Fi-сигнал. Хост-сеть, которую я попытался настроить в CMD, не использует Wi-Fi-соединение (я включил этот параметр в свойствах).


Мне нужен способ сделать это. Есть ли способ получить URL-адреса путем переноса запросов через мой компьютер?

Ответ 1

Продвинутый прокси-сервер Charles Web позволит вам делать то, что вы хотите. Это приложение HTTP proxy, работающее в Windows, OS X и Linux.

Вам понадобится ваш телефон и компьютер для подключения к той же локальной сети и настроить параметры Wi-Fi вашего телефона, чтобы использовать прокси-сервер, указывая его на IP-адрес вашего компьютера с портом 8888. Затем весь веб-трафик в/с вашего телефона будет путешествовать через ваш компьютер и быть видимым в Чарльзе.

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

Поскольку это просто прокси-сервер HTTP, он не требует укоренившегося устройства.

Единственный недостаток, который я вижу, это лицензионное программное обеспечение (50 долларов США для одной пользовательской лицензии), но "бесплатная пробная версия" не истекает - приложение просто закрывается после того, как оно было открыто в течение 30 минут, если я вспомню правильно.

Для большинства устройств (Android 4.0 вверх, я предполагаю) прокси-сервер может быть установлен следующим образом:

  • Перейдите в настройки Wi-Fi.
  • Длительное нажатие на желаемую сеть.
  • Выберите "Изменить сеть"
  • Отметьте 'показать дополнительные параметры'
  • Set
    • Прокси: руководство
    • Прокси-имя хоста: {IP-адрес вашего компьютера}
    • Порт прокси: 8888
  • Сохранить

Ответ 2

Я, наконец, понял это и получил API, который меня интересовал. Это делается несколькими простыми шагами: привяжите свое интернет-соединение к своему телефону, подключите свой телефон к вновь созданной беспроводной сети ad-hoc, сделайте wirehark захватите ваши запросы.

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


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

netsh wlan set hostednetwork mode=allow ssid=networkname key=networkpass
netsh wlan start hostednetwork

если он работает, перейдите к шагу 2. В противном случае у вас будет некоторое устранение неполадок. К сожалению, нет простого способа сделать это. Сначала просмотрите свои сетевые подключения и найдите свой Wi-Fi, щелкните правой кнопкой мыши и отключите его. Затем перейдите к диспетчеру устройств, перейдите к сетевым адаптерам и удалите все с помощью виртуальных в нем, это виртуальные хосты, из-за которых ваши запросы CMD терпят неудачу. Вы можете включить свой Wi-Fi снова. Теперь подождите несколько минут, а затем повторите попытку. Если он все еще не работает, перезагрузите компьютер и повторите этот шаг. Это похоже на хлопот, и это так, но это единственный способ, которым я это сделал.

2- просмотрите сетевые подключения и щелкните по нему правой кнопкой мыши, выберите свойства. Теперь перейдите на вкладку совместного доступа, включите возможность совместного использования вашего соединения с другими. Теперь найдите Wi-Fi-сети на своем телефоне и выберите свое сетевое имя и введите свой пароль. (подключитесь к Интернету с помощью телефона):

Теперь вы сможете просматривать Интернет с помощью телефона. Если нет, я не знаю, что делать. Сначала попробуйте браузер, чтобы проверить подключение к Интернету, потому что некоторые приложения заблокированы в этой настройке. Это по соображениям безопасности (вы не хотите, чтобы кто-то набрасывался на ваше банковское приложение).

3- Загрузите проводку, установите ее, начните захватывать. Теперь сделайте запросы, которые вы хотите отслеживать на своем телефоне. Затем прекратите запись. Теперь вы можете нажать на протокол, чтобы упорядочить все запросы, вам нужно только проверить протокол HTTP. Вы можете видеть URL-адрес справа. (проверка HTTP-запроса)


Резюме: Мы подключили наш телефон к ПК для использования Интернета. ПК делает все запросы на внешние серверы и отправляет их обратно на телефон. Запросы, сделанные компьютером (как для самого ПК, так и для телефона), можно просмотреть с помощью wirehark.

Ответ 3

АКТИВНО., использование USB-обратного привязки для обеспечения сети на телефоне и запуск wirehark на ПК, вероятно, самый простой способ сделать это. Глянь сюда: http://foldingair.blogspot.ie/2013/11/debug-your-android-applications-by.html

  • Отключите мобильную и беспроводную сеть на телефоне.
  • Подключить телефон к компьютеру на USB-устройстве.
  • Включить интернет-пропуск, хотя на ПК.
  • В настройках телефонной сети включите USB-модем.

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

Обратите внимание, что я не пробовал это (поскольку у меня есть комбинация укорененных проб или доступ к захвату с сетевого маршрутизатора), однако он выглядит как хороший метод. В следующий раз, когда я нахожусь root/router-less, я попробую его. Инструкции для окон выглядят проще, чем для Linux.

Ответ 4

Было бы проще использовать http://www.wireshark.org/ и/или http://www.tcpdump.org/ для захвата пакетов либо на телефоне (но с корнем для телефона) ИЛИ в точке, где ваш телефон подключается к сети.

  • Захват с использованием прокси-сервера Установите прокси-сервер, как предлагается в ответе "получить компьютер с двумя сетевыми картами", если у вас есть ПК с двумя сетевыми адаптерами. Сделайте ПК прокси-сервером между Интернетом и беспроводным телефоном, к которому подключается телефон. Запустите wirehark.

  • Захват на маршрутизаторе Вы можете также захватить пакеты на Wi-Fi маршрутизаторе напрямую. Вы управляете маршрутизатором? У маршрутизатора уже есть возможности регистрации/мониторинга? Можете ли вы установить openwrt и выполнить захват пакетов с помощью tcpdump в этот момент? Вероятно, примерно столько же работы, сколько и укоренение телефона.

  • Захват по телефону Корневые телефоны могут запускать tcpdump. И с помощью корневых телефонов вы также можете перенаправлять запросы, добавляя запись хостов в /etc/hosts или делая iptables переписывать IP-адреса и/или порты.

Можете ли вы посетить сеть друзей, в которой они уже захватили трафик, и позволит вам взять файл захвата?

Любой из предыдущих решений является самым чистым. Возможно, вы можете сделать что-то взломанное с прокси-сервером DNS и прокси-сервером http, если вы не можете подключить телефон/маршрутизатор и не имеете запасной сетевой адаптер и беспроводной маршрутизатор. Я бы не стал советоваться с этим, но я думаю, что было бы возможно:

  • Установить DNS-сервер. Пересылать все запросы на обычный DNS-сервер.
  • Назовите телефон на своем DNS-сервере. Вы должны уметь видеть хосты, которые просматриваются на вашем DNS-сервере.
  • Установить прокси-сервер http, который регистрирует и пересылает HTTP-запросы (возможно, apache)
  • Сделайте свои запросы на пересылку DNS-сервера, которые вы хотите перехватить для своего прокси-сервера http.
  • Захват URL-адреса вашего прокси-сервера http

Ответ 5

получить компьютер с двумя сетевыми адаптерами, настроить интернет на одной стороне и подключить маршрутизатор WAN (или просто LAN), с другой, если вы сделаете это правильно, включите общий доступ к Интернету и используйте приложение, называемое wirehark. Я предполагаю, что если вы хотите просмотреть HTTP-запросы, вы достаточно техничны, чтобы установить это:)

это поможет с HTTP, но не с HTTPS.

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