SlideShare a Scribd company logo
1 of 25
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/

More Related Content

Viewers also liked

Webservices Workshop - september 2014
Webservices Workshop -  september 2014Webservices Workshop -  september 2014
Webservices Workshop - september 2014clairvoyantllc
 
WebServices Basic Introduction
WebServices Basic IntroductionWebServices Basic Introduction
WebServices Basic IntroductionShahid Shaik
 
Introduction of WebServices
Introduction of WebServicesIntroduction of WebServices
Introduction of WebServicesKhasim Saheb
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, FormulárioArthur Emanuel
 
Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)Arthur Emanuel
 
Aula05 - Android - Persistência
Aula05 - Android - PersistênciaAula05 - Android - Persistência
Aula05 - Android - PersistênciaArthur Emanuel
 
Web Service Testing using TestComplete
Web Service Testing using TestCompleteWeb Service Testing using TestComplete
Web Service Testing using TestCompletesrivinayak
 
Testing web services
Testing web servicesTesting web services
Testing web servicesTaras Lytvyn
 
Webservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTWebservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTPradeep Kumar
 

Viewers also liked (16)

HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Webservices Workshop - september 2014
Webservices Workshop -  september 2014Webservices Workshop -  september 2014
Webservices Workshop - september 2014
 
WebServices Basic Introduction
WebServices Basic IntroductionWebServices Basic Introduction
WebServices Basic Introduction
 
Webservices
WebservicesWebservices
Webservices
 
Introduction of WebServices
Introduction of WebServicesIntroduction of WebServices
Introduction of WebServices
 
CSS 3
CSS 3CSS 3
CSS 3
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)Aula - 04 - Android - Interface grafica (layout, widgets)
Aula - 04 - Android - Interface grafica (layout, widgets)
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Aula05 - Android - Persistência
Aula05 - Android - PersistênciaAula05 - Android - Persistência
Aula05 - Android - Persistência
 
Web Service Testing using TestComplete
Web Service Testing using TestCompleteWeb Service Testing using TestComplete
Web Service Testing using TestComplete
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Webservices
WebservicesWebservices
Webservices
 
WebServices
WebServicesWebServices
WebServices
 
Testing web services
Testing web servicesTesting web services
Testing web services
 
Webservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTWebservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and REST
 

Similar to Webservices REST JSON AsyncTask Android

Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Thyago Maia
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTMario Sergio
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Maurício Linhares
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonJeison Barros
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthJean Lima Lopes
 
WebService Restful em Java
WebService Restful em JavaWebService Restful em Java
WebService Restful em Javaalexmacedo
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo Fmdmansur
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyantonio sérgio nogueira
 
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Thyago Maia
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Pythonantonio sérgio nogueira
 
Httpunit - Teste de interface Web com HttpUnit
Httpunit - Teste de interface Web com HttpUnitHttpunit - Teste de interface Web com HttpUnit
Httpunit - Teste de interface Web com HttpUnitDenis L Presciliano
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APIWaldyr Felix
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 

Similar to Webservices REST JSON AsyncTask Android (20)

Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
365on Lab - Asp.Net MVC
365on Lab - Asp.Net MVC365on Lab - Asp.Net MVC
365on Lab - Asp.Net MVC
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 
WebServices intro
WebServices introWebServices intro
WebServices intro
 
Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01Curso de Ruby on Rails - Aula 01
Curso de Ruby on Rails - Aula 01
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para json
 
Curso de Servlets
Curso de ServletsCurso de Servlets
Curso de Servlets
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuth
 
WebService Restful em Java
WebService Restful em JavaWebService Restful em Java
WebService Restful em Java
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
 
ASP.NET AJAX
ASP.NET AJAXASP.NET AJAX
ASP.NET AJAX
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
 
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Python
 
Httpunit - Teste de interface Web com HttpUnit
Httpunit - Teste de interface Web com HttpUnitHttpunit - Teste de interface Web com HttpUnit
Httpunit - Teste de interface Web com HttpUnit
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 

More from Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningArthur Emanuel
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosArthur Emanuel
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com FacebookArthur Emanuel
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaArthur Emanuel
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuArthur Emanuel
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomArthur Emanuel
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoArthur Emanuel
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosArthur Emanuel
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoArthur Emanuel
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoArthur Emanuel
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioArthur Emanuel
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoArthur Emanuel
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceArthur Emanuel
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao SwingArthur Emanuel
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array ListArthur Emanuel
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismoArthur Emanuel
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arraysArthur Emanuel
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosArthur Emanuel
 

More from Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
Java: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acessoJava: Encapsulamento e modificadores de acesso
Java: Encapsulamento e modificadores de acesso
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
Java: Introducao ao Swing
Java: Introducao ao SwingJava: Introducao ao Swing
Java: Introducao ao Swing
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
 
Java: Introdução à Orientação a Objetos
Java: Introdução à Orientação a ObjetosJava: Introdução à Orientação a Objetos
Java: Introdução à Orientação a Objetos
 

Webservices REST JSON AsyncTask Android

  • 1. WEBSERVICES Arthur Emanuel de Oliveira Carosia
  • 2. Webservices 2  Uso de serviç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 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
  • 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 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.
  • 8. Acessando Webservice 8  Incluir a permissão para acesso à Internet no AndroidManifest.xml.
  • 10. 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).
  • 11. 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.
  • 12. Acessando Webservice 12  tipo dos parâmetros que são enviados para a execução da tarefa.
  • 13. Acessando Webservice 13  é o tipo que representa a unidade de progresso da tarefa
  • 14. Acessando Webservice 14  é o tipo de retorno da operação realizada
  • 15. 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
  • 16. Acessando Webservice 16  Exibir um ProgressDialog na tela
  • 17. Acessando Webservice 17  Ao fnal do processamento iremos atualizar a ListView com os resultados encontrados
  • 18. 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. 19
  • 20. 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; }
  • 23. Exercício 23  Crie uma classe 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/