android - consumindo webservices
Post on 23-Jan-2018
439 Views
Preview:
TRANSCRIPT
WEBSERVICES
Arthur Emanuel de Oliveira Carosia
Webservices2
Uso de serviços remotos disponibilizados por
outras aplicações.
Integração
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.
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.
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
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
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.
Acessando Webservice8
Incluir a permissão para acesso à Internet no
AndroidManifest.xml.
Layout9
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).
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.
Acessando Webservice12
tipo dos parâmetros que são enviados
para a execução da tarefa.
Acessando Webservice13
é o tipo que representa a unidade de
progresso da tarefa
Acessando Webservice14
é o tipo de retorno da
operação realizada
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
Acessando Webservice16
Exibir um ProgressDialog na tela
Acessando Webservice17
Ao fnal do processamento iremos atualizar a
ListView com os resultados encontrados
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.
19
20
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;
}
Acessando Webservice22
Invocando o acesso ao WS
Exercício23
Crie uma classe que acesse o WebService
dos correios e busque informações por CEP.
Exiba os resultados em uma ListView.
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/.
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/
top related