Android - Consumindo Webservices
-
Upload
arthur-emanuel -
Category
Technology
-
view
438 -
download
0
Transcript of Android - Consumindo Webservices
![Page 1: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/1.jpg)
WEBSERVICES
Arthur Emanuel de Oliveira Carosia
![Page 2: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/2.jpg)
Webservices2
Uso de serviços remotos disponibilizados por
outras aplicações.
Integração
![Page 3: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/3.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/4.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/5.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/6.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/7.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/8.jpg)
Acessando Webservice8
Incluir a permissão para acesso à Internet no
AndroidManifest.xml.
![Page 9: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/9.jpg)
Layout9
![Page 10: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/10.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/11.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/12.jpg)
Acessando Webservice12
tipo dos parâmetros que são enviados
para a execução da tarefa.
![Page 13: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/13.jpg)
Acessando Webservice13
é o tipo que representa a unidade de
progresso da tarefa
![Page 14: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/14.jpg)
Acessando Webservice14
é o tipo de retorno da
operação realizada
![Page 15: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/15.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/16.jpg)
Acessando Webservice16
Exibir um ProgressDialog na tela
![Page 17: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/17.jpg)
Acessando Webservice17
Ao fnal do processamento iremos atualizar a
ListView com os resultados encontrados
![Page 18: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/18.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/19.jpg)
19
![Page 20: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/20.jpg)
20
![Page 21: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/21.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/22.jpg)
Acessando Webservice22
Invocando o acesso ao WS
![Page 23: Android - Consumindo Webservices](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/23.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/24.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022050722/5872a0921a28ab07208b5a55/html5/thumbnails/25.jpg)
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/