Android для начинающих. Урок 7: Приложение «Поиск ВКонтакте» (Часть 3). Совершение GET — запроса.

Автор Vera Abramova
Android для начинающих. Урок 7: Приложение «Поиск ВКонтакте» (Часть 3). Совершение GET — запроса.

На прошлом уроке мы сформировали объект класса ural который в себе содержит it-шник пользователю.

ВКонтакте который он сам вводит на нашей страничке, а на этом уроке мы реализуем кот который в интернет и делает запрос по этому дереву для этого. Давайте перейдём. В класс Network utils и здесь создадим ещё один метод который будет называться например.

Когда будет называться Get response From URL то есть.

Получить ответ от горла и этот метод у нас принимать объект класса ural то есть будет принимать на вход сформированной url-адрес и поэтому url-адресу мы мы будем делать если тебе запрос и получить ответ от сервера WOT сервера. ВКонтакте назовем его. Как поймать Girl. Здесь мы в первую очередь чтобы обратиться по этому правилу должны получить должны открыть Connection то есть должны открыть соединение поэтому я и должны получить объект класса http URL Connection http URL Connection Java urlconnection или того чтобы открыть нужно на нашем объекте Girl который мы сформировали в предыдущем уроке вызвать метод openconnection и мы должны сделать так же долга до класса http URL Connection и надо ещё обрабатывать ошибку Exception который возникает в ходе открытия соединения у нас openconnection возвращает общий класс от страха глаз I need your love Connection должны задонатить в http URL Connection. Теперь ещё когда мы открыли соединения мы можем на этом соединении вызвать метод Get inputstream чтобы получить входной поток данных. И мы этот входной поток данных должны считать мы — это будем делать с помощью сканера. Давайте откроем нашему нашему соединение. Вызови Method Get Windows version URL Connection Get inputstream этот метод у нас возвращается объект класса импульс фильм и в этом с помощью этого класса мы можем считывать данные с нашего соединение того чтобы считывать данные мы будем использовать класс сканер который нас позвали — это удобно и довольно коротко то есть мне нужно будет писать много кода для того чтобы считывать данные из нашего инструмент из нашего входного потока когда мы создаем объект класса сканер твоему передам в качестве аргументов конструктора наш входной поток в нашем последнем и ещё, что мы должны сделать прежде чем мы начнем считывать данные из нашего входного потока — это мы должны у объекта класса сканер вызвать метод. Гаусса диаметр этот метод у нас позволяет выставить тот разделитель который мы будем использовать в сканере классе сканер в качестве разделителя по умолчанию используется пробел. То есть если мы не используем метод ездили метров если мы его не вызывает в качестве разделителя будет пробел. Я здесь привел пример со сканером у нас конструктор в классе сканер. То есть он может принимать не только после чего им как у нас в этом примере с получением данных из какого-то удаленного сервера, а также сканер может поднимать на вход строку и когда мы не используем метод миллиметров когда мы используем разделитель по умолчанию. Мы около сканер нас делит строку по пробелам вот здесь в цикле while Scanner hasnext выводим следующий следующую строку из нашей общей строки то есть вводим следующую строку и видим, что у нас метод. Метод Next делят строку по пробелам у нас Hello Hi Goodbye все слова раздели слова. По правилу, но мы можем изменить. Поведение по умолчанию если используем метод юзпе метр если мы используем например в другой разделитель. Давайте будем делить наши строку по цифре 1 и в этом случае если мы вместо пробела поставим единицу то мы получим тот же самый здесь у нас пока есть следующее по строка у вас будет выводиться следующая строка данном случае у нас появилась тоже самое в нашем обращение к себе. ВКонтакте мы будем использовать другой разделитель мы будем использовать разделитель. Эй у нас в регулярных выражениях Flash значок начало строки соответственно мы будем мы хотим чтобы сканер нашёл строку на следующую постройки чтобы он разделял на постройки до начала строки и после начала начала строки. В итоге с помощью этого трюка сканер не будет разделять строку на подстроки, а сразу нам выдаст целую строку и таким образом у нас сканер возьмет на себя все какие-то мелочи по буферизации по всему остальному потому, что просто удобный класс, но мы получим тот результат, что мы получим сразу всю строку сервера. ВКонтакте если мы здесь запустим эту программу там увидим, что у нас сразу выводится с помощью метода Next у нас сразу выводятся вся строка. И также у нас вся строка получено из интернета теперь здесь поэтому мы укажем такое разделитель слэш слэш начало строки то есть мы не будем делить строку на подстроки — это такой трюк, но этот трюк работает. Он позволяет нам использовать сканер для получения данных из удаленного сервера вообще если бы мы не использовались, что мы должны были вручную обрабатывать этот входной поток мы бы создали наверное бофорт импульсы перевели входной поток в бирюзовой входной поток и вручную получали данные из потока, но с помощью класса сканер — это можно сделать удобнее если знать протокол который позволяет нам получать данные при этом их при этом не разбивая их на подстроки. А по умолчанию каскадер у нас разбивает исходную строку на подстроки по пробелам с помощью метода Next в данном случае мы следующая строка у нас будет проверять, что какой-то вообще какие-то входные данные вообще есть мы — это делаем с помощью методах снег если у нас от сервера. ВКонтакте ничего не придёт то снег будет снег в носках даст волос. Если же хотя бы, что будет у нас будет True если у нас has Input если у нас какой-то какие-то.

0 комментариев
0

Читайте также