Beruflich Dokumente
Kultur Dokumente
Agenda
Http GET POST XML JSON LBS SMS Email XMPP SIP Web Services Push
Utilizado para enviar dados textuais e binrios Protocolo flexvel Define 8 mtodos: HEAD GET POST PUT ...
Http . GET
<uses-permission android:name="android.permission.INTERNET"/>
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; }
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
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
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
API baseada em evento Trata o documento XML como um fluxo contnuo (stream) Lgica de programao: callback
API baseada em rvore XML armazenado na memria como uma rvore Lgica de programao: percorrer rvore, construir rvore
SAX . Exemplo
Leitor RSS
Message
BaseFeedParser
AndroidSaxFeedParser
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
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.
String . key : string Nmeros . key : 100 Valores booleanos . Null . key : null
key : true
Dados estruturados:
Vetores . Objetos .
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" } ]
Mesmas vantagens do XML, sendo mais leve, de fcil manipulao e com um PARSER mais rpido.
Android e JSON
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