Сетевое взаимодействие Санкт-Петербург, 2016 Взаимодействие клиента и

  • Размер: 1.3 Мб
  • Автор:
  • Количество слайдов: 24

Описание презентации Сетевое взаимодействие Санкт-Петербург, 2016 Взаимодействие клиента и по слайдам

Сетевое взаимодействие Санкт-Петербург, 2016 Сетевое взаимодействие Санкт-Петербург,

Взаимодействие клиента и сервера Взаимодействие клиента и сервера

Протокол HTTP/HTTPS Протокол HTTP/HTTPS

Протокол HTTP Протокол HTTP

HTTP- запрос HTTP- запрос

HTTP- ответ HTTP- ответ

Методы HTTP- запроса:  Методы HTTP- запроса:

HTTPS, протокол HTTP с поддержкой шифрования. HTTPS, протокол HTTP с поддержкой шифрования.

Серверное взаимодействие Server Серверное взаимодействие Server

О чем нужно помнить при реализации сетевой части приложения О чем нужно помнить при реализации сетевой части приложения

Подход на основе сокетов Подход на основе сокетов

Частые опросы (polling) Частые опросы (polling)

Длинные опросы (long polling) Длинные опросы (long polling)

Механизм long polling, или пуш-уведомлений (push notifications) Механизм long polling, или пуш-уведомлений (push notifications)

Библиотеки для работы с сетью Библиотеки для работы с сетью

Http. Url. Connection ▪ Lightweight ▪ Один класс ▪ Прост в использовании ▪ Поддержка всего, чтоHttp. Url. Connection ▪ Lightweight ▪ Один класс ▪ Прост в использовании ▪ Поддержка всего, что нужно ▪ В поздних версиях gzip из коробки, кэширование, авторизация и проч. ▪ Рекомендован Google ▪ Баги

Http. Url. Connection  connection  = null ; try  {  URL url =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 ▪ ООП ▪ Тяжеловесный – не больше одного экземпляра на приложение ▪ Из коробки не поддерживает многопоточность ▪ Больше не поддерживается

Apache Http. Client try  {  Http. Get request = new  Http. Get( http: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 Http. Url. Connection VS. Http. Client

Volley & Retrofit 2013 год стал в этом плане весьма эффективным. Появились замечательные библиотеки Volley иVolley & Retrofit 2013 год стал в этом плане весьма эффективным. Появились замечательные библиотеки Volley и Retrofit. Volley — библиотека более общего плана, предназначенная для работы с сетью, в то время как Retrofit специально создана для работы с REST Api. И именно последняя библиотека стала общепризнанным стандартом при разработке клиент-серверных приложений.

Retrofit : Retrofit :

Volley: 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/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/