Сетевое взаимодействие Санкт-Петербург, 2016 Взаимодействие клиента и
lekciya_14.ppt
- Размер: 1.3 Мб
- Автор:
- Количество слайдов: 24
Описание презентации Сетевое взаимодействие Санкт-Петербург, 2016 Взаимодействие клиента и по слайдам
Сетевое взаимодействие Санкт-Петербург,
Взаимодействие клиента и сервера
Протокол HTTP/HTTPS
Протокол HTTP
HTTP- запрос
HTTP- ответ
Методы HTTP- запроса:
HTTPS, протокол HTTP с поддержкой шифрования.
Серверное взаимодействие Server
О чем нужно помнить при реализации сетевой части приложения
Подход на основе сокетов
Частые опросы (polling)
Длинные опросы (long polling)
Механизм long polling, или пуш-уведомлений (push notifications)
Библиотеки для работы с сетью
Http. Url. Connection ▪ Lightweight ▪ Один класс ▪ Прост в использовании ▪ Поддержка всего, что нужно ▪ В поздних версиях gzip из коробки, кэширование, авторизация и проч. ▪ Рекомендован Google ▪ Баги
Http. Url. Connection connection = null ; try { URL url = new URL( «http: //example. com» ); connection = (Http. Url. Connection) url. open. Connection(); connection. set. Request. Method( «GET» ); connection. set. Request. Property( «Accept» , «text/plain» ); connection. connect(); int status. Code = connection. get. Response. Code(); . . . read. Text. From. Server(); } catch (Exception e) { e. print. Stack. Trace(); } finally { if (connection != null ) { connection. disconnect(); } }
Apache Http. Client ▪ ООП ▪ Тяжеловесный – не больше одного экземпляра на приложение ▪ Из коробки не поддерживает многопоточность ▪ Больше не поддерживается
Apache Http. Client try { Http. Get request = new Http. Get( «http: //example. com» ); request. set. Header( «Accept» , «text/plain» ); Http. Response response = get. Http. Client(). execute(request); int status. Code = response. get. Status. Line(). get. Status. Code(); . . . return Entity. Utils. to. String (response. get. Entity()); } catch (Exception e) { e. print. Stack. Trace(); }
Http. Url. Connection VS. Http. Client
Volley & Retrofit 2013 год стал в этом плане весьма эффективным. Появились замечательные библиотеки Volley и Retrofit. Volley — библиотека более общего плана, предназначенная для работы с сетью, в то время как Retrofit специально создана для работы с REST Api. И именно последняя библиотека стала общепризнанным стандартом при разработке клиент-серверных приложений.
Retrofit :
Volley:
Дополнительный материал Полезные ссылки https: //developer. android. com/reference/java/net/Http. URLConnection. html https: //developer. android. com/training/basics/network-ops/connecting. html https: //developer. android. com/training/volley/index. html https: //developer. android. com/training/connect-devices-wirelessly/nsd. html https: //developer. android. com/reference/android/os/Async. Task. html http: //www. intuit. ru/studies/courses/4455/712/lecture/21291? page=2 http: //square. github. io/retrofit/ http: //www. androidhive. info/2016/05/android-working-with-retrofit-http-library/ http: //www. androidhive. info/2014/05/android-working-with-volley-library-1/ http: //vickychijwani. me/retrofit-vs-volley/ https: //github. com/codepath/android_guides/wiki/building-simple-chat-client-with-parse http: //www. vogella. com/tutorials/Java. Library-Ok. Http/article. html http: //www. vogella. com/tutorials/Java. Networking/article. htm l https: //habrahabr. ru/company/e-Legion/blog/265405/