Отладка приложений, взаимодействующих с сервером (Charles)

Уроки по PHP, Javascript и т.п.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение Александр »

Отладка приложений, взаимодействующих с сервером (инструкция по Charles)

Если ваше приложение взаимодействует с сервером и у вас что-то не получается, то этот способ отладки приложения может сильно вам помочь в поиске ошибки.

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

Нам понадобиться сниффер - программа, которая позволяет анализировать трафик.
С помощью такой программы, вы сможете видеть исходящие запросы вашего браузера и полученные ответы.
Запросы к вашему серверу и к серверу api.vkontakte.ru будут отображены в программе.


Когда-то я использовал HTTPLook, но триальная версия очень ограниченная.
Сейчас использую Charles. Триальной версии достаточно. Скачать можно здесь http://www.charlesproxy.com/download/
Можете попробовать использовать другие анализаторы трафика, но тогда вам придется разбираться в них самим.


Я использую браузер Opera и поэтому опишу как работать с Charles в этом браузере.
Если вы пользуетесь браузером Mozilla FireFox, то нужно будет скачать ещё вот это дополнение http://www.charlesproxy.com/charles.xpi
Если используете Internet Explorer, то меняйте свой браузер на другой! :)


Настройка браузера Opera для работы с Charles

Настройки -> Общие настройки -> Расширенные -> Сеть -> Прокси-серверы

Изображение
Ставим галочку у HTTP, пишем в поле "127.0.0.1", а в поле Порт - "8888". Нажимаем Ок и ещё раз Ок.

Если вы не меняли настройки Charles и ваше интернет соединение не использует прокси, то эти данные подойдут.
Если используете прокси или меняли настройки, то попробуйте настроить самостоятельно.

Если после изменения настроек, вы не запустите Charles, то страницы в браузере перестанут открываться. Так и должно быть. Запустите Charles и интернет заработает.
После того, как вы протестируете приложение и закроете Charles, зайдите в настройки Прокси-серверов в опере и снимите галочку у HTTP, чтобы браузер снова открывал страницы.
Кстати, триальная версия Charles, через пол часа работы выдаст сообщение и том, что вы используете пробную версию и завершит работу. Просто запустите снова.


Charles

В Charles активируем захват трафика, если это не сделано.
Седьмая иконка слева (Start/Stop Recording) должна быть нажата.

Изображение

Попробуйте открыть какую-нибудь страницу в браузере и посмотрите на поле Structure в Charles слева. Там должна появиться информация.

Изображение

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

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

Изображение

Кликая на вкладки внизу этого окна, можно увидеть дополнительную информацию:
Query String - параметры, которые были переданы (если они передавались) на страницу,
Headers - заголовки,
Cookies - куки.

На вкладке Response можно увидеть какой ответ возвратил сервер на этот запрос.

Изображение

Внизу этого окна можно поменять вид отображения.


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


Того что вы узнали достаточно, чтобы тестировать взаимодействие своего приложения с сервером.

В итоге, для тестирования своего приложения, загруженного в интернет:
1. Запускаете браузер и Charles.
2. Делаете какие-то действия, чтобы ваше приложение отправило запрос.
3. Смотрите в Charles переданный запрос (вкладка Request) и сравниваете с тем, что вам нужно было сделать.
Вы сможете увидеть, был ли вообще передан запрос. Если что-то не так, то возможно, ошибка именно здесь.
4. Смотрите полученный ответ (вкладка Response). Сверяете с тем, что ожидали получить.
Noise Gate
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34

Re: Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение Noise Gate »

Для FF я бы рекомендовал LiveHTTPHeaders: https://addons.mozilla.org/ru/firefox/addon/3829/
Еще иногда сам использую Poster: https://addons.mozilla.org/ru/firefox/addon/2691/
Аватара пользователя
FireStorm3000
Сообщения: 80
Зарегистрирован: 03 янв 2010, 18:17

Re: Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение FireStorm3000 »

О спасибо) за ФФ особенно
Аватара пользователя
112
Модератор
Модератор
Сообщения: 2215
Зарегистрирован: 02 фев 2010, 21:53

Re: Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение 112 »

только щас осознал насколько это нужный урок!!!
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение Doker »

пользуюсь чарлесом уже пол года
Аватара пользователя
Cadmy
Сообщения: 35
Зарегистрирован: 29 авг 2010, 21:12

Re: Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение Cadmy »

Спасибо, программа еще, кстати, требует Java Vm. Когда установил все нормально заработало. здесь можно скачать: http://www.java.com/ru/download/manual. ... com:80#win. Кувшинчик красивый
IbraM
Сообщения: 6
Зарегистрирован: 27 ноя 2010, 14:57

Re: Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение IbraM »

Есть халявный очень даже сильный прокси-сниффер. Смысл работы как здесь впринципе, так что разбираться в нем не придется. Работает как локальный прокси серв. Через себя пропускает все и инфу детальную дает + в разных удобных видах может показывать (ХМЛ, картинка, вэб-стр и прочее)Авторасшифровка и распаковка и т.д. В общем, че описывать. называется Fiddler. Писано человечком из майкрософт, не зря такая хорошая вещь вышла. Да и писалось от души поэтому нахаляву отдают. http://www.fiddler2.com/fiddler2/
Noise Gate
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34

Re: Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение Noise Gate »

Вот, кстати, еще одно расширение под ФФ. Работает из коробки.
https://addons.mozilla.org/ru/firefox/addon/6647/
z1o
Сообщения: 15
Зарегистрирован: 07 апр 2011, 22:52

Re: Отладка приложений, взаимодействующих с сервером (Charles)

Сообщение z1o »

Пишет oшыбку Charles:
Charles писал(а): 
Failed to find Java VM
 
Ответить