Страница 1 из 2

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

Добавлено: 01 авг 2010, 14:40
Александр
Отладка приложений, взаимодействующих с сервером (инструкция по 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). Сверяете с тем, что ожидали получить.

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

Добавлено: 02 авг 2010, 08:18
Noise Gate
Для FF я бы рекомендовал LiveHTTPHeaders: https://addons.mozilla.org/ru/firefox/addon/3829/
Еще иногда сам использую Poster: https://addons.mozilla.org/ru/firefox/addon/2691/

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

Добавлено: 03 авг 2010, 08:49
FireStorm3000
О спасибо) за ФФ особенно

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

Добавлено: 21 авг 2010, 19:25
112
только щас осознал насколько это нужный урок!!!

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

Добавлено: 21 авг 2010, 19:29
Doker
пользуюсь чарлесом уже пол года

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

Добавлено: 29 авг 2010, 23:25
Cadmy
Спасибо, программа еще, кстати, требует Java Vm. Когда установил все нормально заработало. здесь можно скачать: http://www.java.com/ru/download/manual. ... com:80#win. Кувшинчик красивый

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

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

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

Добавлено: 02 дек 2010, 20:43
Noise Gate
Вот, кстати, еще одно расширение под ФФ. Работает из коробки.
https://addons.mozilla.org/ru/firefox/addon/6647/

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

Добавлено: 10 апр 2011, 19:38
z1o
Пишет oшыбку Charles:
Charles писал(а): 
Failed to find Java VM
 

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

Добавлено: 10 апр 2011, 19:59
Александр