Android - Consumindo Webservices

25
WEBSERVICES Arthur Emanuel de Oliveira Carosia

Transcript of Android - Consumindo Webservices

Page 1: Android - Consumindo Webservices

WEBSERVICES

Arthur Emanuel de Oliveira Carosia

Page 2: Android - Consumindo Webservices

Webservices2

Uso de serviços remotos disponibilizados por

outras aplicações.

Integração

Page 3: Android - Consumindo Webservices

Webservices - REST3

Tem se consolidado como padrão quando se tratade disponibilizar serviços na web.

Características: Utilizar os métodos do protocolo HTTP para representar as

operações que pode ser executadas pelo serviço;

Expor as informações através de URLs representativas, similar a uma estrutura de diretórios;

O serviço não deve armazenar estado entre requisições;

Transmitir os dados em formato XML e/ou JSON;

O uso de hypermedia para representar possíveis transições.

Page 4: Android - Consumindo Webservices

Webservices - REST4

Temos então é uma URL que, quando

acessada, utilizando o método HTTP correto e

os parâmetros necessários, retorna dados em

formato texto.

Page 5: Android - Consumindo Webservices

JSON5

Para trafegar as informações, poderosa usar

JSON, JavaScript Object Notation

formato simples de texto utilizado para

representar dados, voltado principalmente para a

conversão de dados estruturados para a forma

textual

Page 6: Android - Consumindo Webservices

Exemplo de Serviço6

Google Books API.

Informações sobre livros

Para ver como funciona um serviço REST e

verificar os dados retornados em formato JSON.

Para testar, acesse a seguinte URL:

https://www.googleapis.com/books/v1/volumes

?q=android

Page 7: Android - Consumindo Webservices

Exemplo7

Implementar um aplicativo que realiza

consultas em Webservices.

Uso de tarefas assíncronas, AsyncTasks, do

Android para realizar requisições HTTP com o

objetivo de não travar a aplicação enquanto o

acesso ao WS é realizado.

Page 8: Android - Consumindo Webservices

Acessando Webservice8

Incluir a permissão para acesso à Internet no

AndroidManifest.xml.

Page 9: Android - Consumindo Webservices

Layout9

Page 10: Android - Consumindo Webservices

Acessando Webservice10

Não devemos acessar a rede a partir da

thread que está rodando a activity (UI thread).

Isto bloquearia a interface gráfca

e poderia causar o erro de Application Not

Responding (ANR).

Page 11: Android - Consumindo Webservices

Acessando Webservice11

Para essa situação, o Android disponibilizaatravés da classe AsyncTask uma forma simplesde criar tarefas assíncronas que executamoperações em background (em outra thread) eque podem publicar os resultados da operação naUI thread.

Dentro da classe que busca do Webservice,vamos criar uma classe privada que estende deAsyncTask, para invocar o serviço.

Page 12: Android - Consumindo Webservices

Acessando Webservice12

tipo dos parâmetros que são enviados

para a execução da tarefa.

Page 13: Android - Consumindo Webservices

Acessando Webservice13

é o tipo que representa a unidade de

progresso da tarefa

Page 14: Android - Consumindo Webservices

Acessando Webservice14

é o tipo de retorno da

operação realizada

Page 15: Android - Consumindo Webservices

AsyncTask15

Possui quatro etapas (métodos):

onPreExecute invocado na UI thread antes da tarefa ser executada

doInBackground é invocado em uma outra thread e é onde a operação

deveser implementada. Único método obrigatório.

onProgressUpdate este método é invocado na UI thread após o

publishProgress ser executado

onPostExecute também invocado na UI thread, este método recebe o

Result como parâmetro e faz as atualizações de tela necessárias

Page 16: Android - Consumindo Webservices

Acessando Webservice16

Exibir um ProgressDialog na tela

Page 17: Android - Consumindo Webservices

Acessando Webservice17

Ao fnal do processamento iremos atualizar a

ListView com os resultados encontrados

Page 18: Android - Consumindo Webservices

Acessando Webservice18

Classe Util

realizar uma requisição HTTP para uma URL,

que será montada a partir dos termos de busca

informados como parâmetro e em seguida,

processaremos a reposta obtida que está vem

formato JSON, criando um String[] com os dados.

Page 19: Android - Consumindo Webservices

19

Page 20: Android - Consumindo Webservices

20

Page 21: Android - Consumindo Webservices

21

"https://www.googleapis.com/books/v1/volumes?q=“

JSONArray resultados =

jsonObject.getJSONArray("items");

// montamos o resultado

String[] results = new String[resultados.length()];

for (int i = 0; i < resultados.length(); i++) {

JSONObject result = resultados.getJSONObject(i);

String empresa = result.getString("kind");

JSONObject volumeInfo =

result.getJSONObject("volumeInfo");

String title = volumeInfo.getString("title");

results[i] = title + empresa;

}

Page 22: Android - Consumindo Webservices

Acessando Webservice22

Invocando o acesso ao WS

Page 23: Android - Consumindo Webservices

Exercício23

Crie uma classe que acesse o WebService

dos correios e busque informações por CEP.

Exiba os resultados em uma ListView.

Page 24: Android - Consumindo Webservices

Referências24

Google Android. Crie Aplicações para

Celulares e Tablets. Monteiro, J. Bosco. Casa

do Código.

Desenvolvimento Mobile com Android. K19

Treinamentos.

Android Developers. Disponível em:

http://developer.android.com/.

Page 25: Android - Consumindo Webservices

Referências Complementares25

http://www.devmedia.com.br/consumindo-

webservices-em-aplicacoes-android/26866

http://www.theclub.com.br/restrito/revistas/201

309/andr1309.aspx

http://www.k19.com.br/artigos/webservice-

restful-utilizando-json/

http://www.k19.com.br/artigos/criando-um-

webservice-restful-em-java/