WEBSERVICES
Arthur Emanuel de Oliveira Carosia
Webservices
2
 Uso de serviços remotos disponibilizados por
outras aplicações.
 Integração
Webservices - REST
3
 Tem se consolidado como padrão quando se trata
de 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 - REST
4
 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.
JSON
5
 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ço
6
 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
Exemplo
7
 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 Webservice
8
 Incluir a permissão para acesso à Internet no
AndroidManifest.xml.
Layout
9
Acessando Webservice
10
 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 Webservice
11
 Para essa situação, o Android disponibiliza
através da classe AsyncTask uma forma simples
de criar tarefas assíncronas que executam
operações em background (em outra thread) e
que podem publicar os resultados da operação na
UI thread.
 Dentro da classe que busca do Webservice,
vamos criar uma classe privada que estende de
AsyncTask, para invocar o serviço.
Acessando Webservice
12

tipo dos parâmetros que são enviados
para a execução da tarefa.
Acessando Webservice
13

é o tipo que representa a unidade de
progresso da tarefa
Acessando Webservice
14

é o tipo de retorno da
operação realizada
AsyncTask
15
 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
deve
ser 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 Webservice
16
 Exibir um ProgressDialog na tela
Acessando Webservice
17
 Ao fnal do processamento iremos atualizar a
ListView com os resultados encontrados
Acessando Webservice
18
 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 Webservice
22
 Invocando o acesso ao WS
Exercício
23
 Crie uma classe que acesse o WebService
dos correios e busque informações por CEP.
 Exiba os resultados em uma ListView.
Referências
24
 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 Complementares
25
 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/

Android - Consumindo Webservices

  • 1.
  • 2.
    Webservices 2  Uso deserviços remotos disponibilizados por outras aplicações.  Integração
  • 3.
    Webservices - REST 3 Tem se consolidado como padrão quando se trata de 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.
  • 4.
    Webservices - REST 4 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.
  • 5.
    JSON 5  Para trafegaras 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
  • 6.
    Exemplo de Serviço 6 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
  • 7.
    Exemplo 7  Implementar umaplicativo 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.
  • 8.
    Acessando Webservice 8  Incluira permissão para acesso à Internet no AndroidManifest.xml.
  • 9.
  • 10.
    Acessando Webservice 10  Nãodevemos 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).
  • 11.
    Acessando Webservice 11  Paraessa situação, o Android disponibiliza através da classe AsyncTask uma forma simples de criar tarefas assíncronas que executam operações em background (em outra thread) e que podem publicar os resultados da operação na UI thread.  Dentro da classe que busca do Webservice, vamos criar uma classe privada que estende de AsyncTask, para invocar o serviço.
  • 12.
    Acessando Webservice 12  tipo dosparâmetros que são enviados para a execução da tarefa.
  • 13.
    Acessando Webservice 13  é otipo que representa a unidade de progresso da tarefa
  • 14.
    Acessando Webservice 14  é otipo de retorno da operação realizada
  • 15.
    AsyncTask 15  Possui quatroetapas (métodos):  onPreExecute  invocado na UI thread antes da tarefa ser executada  doInBackground  é invocado em uma outra thread e é onde a operação deve ser 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
  • 16.
    Acessando Webservice 16  Exibirum ProgressDialog na tela
  • 17.
    Acessando Webservice 17  Aofnal do processamento iremos atualizar a ListView com os resultados encontrados
  • 18.
    Acessando Webservice 18  ClasseUtil  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.
    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; }
  • 22.
  • 23.
    Exercício 23  Crie umaclasse que acesse o WebService dos correios e busque informações por CEP.  Exiba os resultados em uma ListView.
  • 24.
    Referências 24  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/.
  • 25.
    Referências Complementares 25  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/