Sie sind auf Seite 1von 20

Protocolos de Comunicao para Redes Mveis

Gustavo Soares Vieira gugasv@gmail.com humrum.com

Agenda
Http GET POST XML JSON LBS SMS Email XMPP SIP Web Services Push

Hypertext Transfer Protocol (Http)

Utilizado para enviar dados textuais e binrios Protocolo flexvel Define 8 mtodos: HEAD GET POST PUT ...

Http . GET

Requisio de um recurso do servidor Http


public static String getRequest(String url) { try { HttpClient client = new DefaultHttpClient(); HttpResponse response = client.execute(new HttpGet(url)); return inputStreamToString( response.getEntity().getContent() ); } catch (Exception e) { Log.e(Constants.TAG, e.getMessage(), e); } return null; }

<uses-permission android:name="android.permission.INTERNET"/>

Http . GET (Exerccio)

Criar uma aplicao em Android que faa uma requisio GET a um servidor e exibir na tela do dispositivo o resultado desta requisio

Http . POST
... List<NameValuePair> values = new ArrayList<NameValuePair>(); values.add(new BasicNameValuePair("nome", nome)); ... public static String postRequest(String url, List<NameValuePair> values) { try { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); post.setEntity(new UrlEncodedFormEntity(values)); HttpResponse response = client.execute(post); return inputStreamToString( response.getEntity().getContent() ); } catch (Exception e) { Log.e(Constants.TAG, e.getMessage(), e); } return null; }

Http . POST (Exerccio)

Criar uma aplicao em Android que faa uma requisio POST para URL abaixo, passando os seguintes valores: nome, email e twitter
http://humrum.com/idez/api.php?q=new

Extensible Markup Language (XML)

XML um acrnimo para eXtensible Markup Language No especifica um conjunto de tags e estruturas padronizadas
Pode-se usar qualquer tag que o desenvolvedor queira, desde que as outras aplicaes conheam a estrutura

Linguagens de marcao j existem desde a dcada de 70

Por que usar XML?

Maior capacidade de expressar os dados


Com tags aninhadas podemos expressar dados de forma hierrquica Os dados podem ter tipos prprios

Legvel tanto por software quanto por humanos Padro aberto Maior facilidade de integrao com outros sistemas de outros fabricantes Tornou-se o padro de sistemas corporativos para troca de dados e integrao

XML . Exemplo
<?xml version="1.0" encoding="UTF-8"?> <curriculo> <InformacaoPessoal> <DataNascimento>23-07-68</DataNascimento> <Nomecompleto>...</Nomecompleto> <Contatos> <Morada> <Rua>R.Topazio</Rua> <Num>111</Num> <Cidade>nome_cidade</Cidade> <Pais>nome_pas</Pais> </Morada> <Telefone>9999-9999</Telefone> <CorreioEletronico>email@email.com</CorreioEletronico> </Contatos> <Nacionalidade>brasileiro</Nacionalidade> <Sexo>M</Sexo> </InformacaoPessoal> <Experiencia> <Cargo>Suporte tecnico</Cargo> <Empregador>Empresa, Cidade Estado</Empregador> </Experiencia> </curriculo>

Android e XML

O Android no chega a oferecer tudo o que est disponvel na JRE padro, mas suporta uma boa parte dela Existem vrias formas de se trabalhar com XML em JAVA, mas o Android apenas deu suporte nativo a dois modos: SAX e DOM. Mas existem outras formas que podem ser implementadas para a plataforma.

SAX vs DOM

SAX Simple API for XML


API baseada em evento Trata o documento XML como um fluxo contnuo (stream) Lgica de programao: callback

DOM Document Object Model


API baseada em rvore XML armazenado na memria como uma rvore Lgica de programao: percorrer rvore, construir rvore

SAX . Exemplo

Leitor RSS

Message

Representa cada notcia do RSS

BaseFeedParser

Classe abstrata que faz a requisio do contedo do RSS

AndroidSaxFeedParser

Classe que interpreta o XML

XML . SAX (Exerccio)

Modificar o exemplo do leitor de RSS para que leia os ltimos tweets de um usurio qualquer
https://api.twitter.com/1/statuses/user_timeline.xml? include_entities=true&include_rts=false&screen_name=fac uldadeidez&count=2

JavaScript Object Notation (JSON)

JSON, acrnimo para JavaScript Object Notation, um formato leve de troca de dados, baseado em texto, derivado dos objetos literais (JavaScript Object Literal) da linguagem JavaScript, que consiste em uma lista de dados separados por vrgulas, estruturados em pares (nome e valor), entre chaves.

JavaScript Object Notation (JSON)

Pode representar quatro tipos de dados primitivos:


String . key : string Nmeros . key : 100 Valores booleanos . Null . key : null

key : true

Dados estruturados:

Vetores . Objetos .

key : [a, b, c] key : { a : true, b : 100, c : string }

JSON . Exemplo
[ { "favorited":false, "in_reply_to_status_id":null, "entities":{ "hashtags":[], "user_mentions":[ { "name":"Aderbal Nunes", "indices":[0, 13], "screen_name":"aderbalnunes", "id":59839116, "id_str":"59839116" } ] }, "retweet_count":0, "text":"@aderbalnunes quero ver aike fazer isso vei . http:\/\/t.co\/YeTB5TtH", "created_at":"Sat Oct 08 03:27:30 +0000 2011" } ]

Por que usar JSON?

Mesmas vantagens do XML, sendo mais leve, de fcil manipulao e com um PARSER mais rpido.

Android e JSON

API nativa Gson (converter JSON para objetos Java e vice-versa)

String json = {\status\:\OK\ }; try { JSONObject jObj = new JSONObject(json); String status = jObj.getString("status"); showAlertDialog(status); } catch (JSONException e) { showAlertDialog("JSON Opa"); }

JSON (Exerccio)

Modificar o exerccio do anterior para que leia os ltimos tweets de um usurio qualquer em JSON
https://api.twitter.com/1/statuses/user_timeline.json? include_entities=true&include_rts=false&screen_name=fac uldadeidez&count=2

Das könnte Ihnen auch gefallen