1 / 20

Generic Connection Framework

Generic Connection Framework. Prof. André Assad Andre.Assad@gmail.com. Comunicação de Dados. Meios de comunicação (dispositivos móveis) Infravermelho Rádio TDMA CDMA GSM: GPRS, EDGE, 3G Bluetooth NFC Portas seriais. Comunicação de Dados.

mareo
Download Presentation

Generic Connection Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Generic Connection Framework Prof. André Assad Andre.Assad@gmail.com

  2. Comunicação de Dados • Meios de comunicação (dispositivos móveis) • Infravermelho • Rádio • TDMA • CDMA • GSM: GPRS, EDGE, 3G • Bluetooth • NFC • Portas seriais

  3. Comunicação de Dados • Protocolos de comunicação (dispositivos móveis) • RS-232 • HTTP • Socket • SMS

  4. Comunicação de Dados

  5. Introdução ao GCF • Java.io + java.net: só eles são maiores que os recursos disponíveis de muitos dispositivos móveis • GCF (Generic Connection Framework) • A idéia era não implementar um conjunto de classes completamente novo • Devia-se fornecer um sub-conjunto do J2SE

  6. Conexão Genérica • O termo “Genérico” significa algo que atende ou serve para vários fins (obviamente ) • Connector • Classe para criação de qualquer tipo de conexão • Connector.open(“protocolo:endereço;parâmetros”); • Tipos de conexões • HTTP • Serial • Socket • HTTPS • Ir • Datagrama • SSL • File

  7. Abrindo uma Conexão • Exemplos de abertura de conexão: • Connector.open(“http://uol.com.br”); • Connector.open(“socket://200.217.158.56”); • Connector.open(“file://teste.txt”); • Connector.open(“comm:1;baudrate=9600”);

  8. GCF • GCF é flexível graças ao modo como os protocolos são resolvidos em tempo de execução • A classe Connector procura a classe apropriada que implementa o protocolo solicitado • Essas classes específicas dos protocolos implementam uma interface chamada Connection • Embora a API suporte vários, o único protocolo de comunicação exigido é o HTTP.

  9. GCF - hierarquia CommConnection ContentConnection DatagramaConnection HttpConnection HttpsConnection InputConnection Connector Connection OutputConnection SecureConnection SocketConnection StreamConnection UDPConnection ServerSocketConnection

  10. GCF - API • publicstatic final intREAD • publicstatic final intWRITE • publicstatic final intREAD_WRITE • publicstaticConnectionopen(Stringname) throwsIOException • publicstaticConnectionopen(Stringname, intmode) throwsIOException • publicstaticInputStreamopenInputStream(Stringname) throwsIOException • publicstaticDataInputStreamopenDataInputStream(Stringname) throwsIOException • publicstaticDataOutputStreamopenDataOutputStream(Stringname) throwsIOException • publicstaticOutputStreamopenOutputStream(Stringname) throwsIOException

  11. Protocolo HTTP • É o único protocolo, com certeza, implementado no J2ME • Classe HttpConnection • Através desse protocolo, pode-se comunicar com um servidor web • Portabilidade garantida • Conhecido como protocolo de pedidos e respostas

  12. Protocolo HTTP Cliente HTTP Servidor Web Pedido Resposta

  13. Protocolo HTTP

  14. Comandos HTTP • Comandos (de solicitação) • GET : dados enviados como parte da URL • POST : dados enviados em fluxo separado • HEADER • PUT • DELETE • Composição de uma solicitação HTTP: • Método do pedido • Cabeçalho • Corpo

  15. Requisição HTTP • Forma de indicar o método de solicitação do pedido HttpConnection http = null; http = (HttpConnection) Connector.open(url); http.setRequestMethod(HttpConnection.GET);

  16. Cabeçalhos HTTP • Configurarandoos campos do cabeçalho HttpConnection http = null; http = (HttpConnection) Connector.open(url); http.setRequestMethod(HttpConnection.GET);

  17. Cabeçalho HTTP • Lendo o cabeçalho HTTP • publicString getHeaderField(int n) • public String getHeaderField(String name) • public String getHeaderFieldKey(int n) • publiclonggetDate() • publiclonggetExpiration()

  18. Status HTTP • Indica o resultado do pedido do cliente • Para httpConnection existem mais de 35 códigos de resposta existentes: • 1xx – Informação • 2xx – Sucesso • 3xx – Redirecionamento • 4xx – Erros de cliente • 5xx – Erros de servidor • Métodos java utilizados • http.getResponseMessage(); • http.getResponseCode();

  19. Exemplo - StreamConnection void getViaStreamConnection(String url) throws IOException { StreamConnection c = null; InputStream s = null; try { c = (StreamConnection)Connector.open(url); s = c.openInputStream(); intch; while ((ch = s.read()) != -1) { ... } } finally { if (s != null) s.close(); if (c != null) c.close(); } }

  20. Exercício HTTP • Usando HTTPConnection, desenvolva um MIDLet que deverá fazer um GET na seguinte URL: • http://auth.mview.com.br:8081/mview/auth/LoginForm.do?logon_action=&username=test&password=test • Esta URL retorna SUCCESS para login bem sucedido e ERROR para login mau sucedido • Em caso de login bem sucedido o midlet deverá encaminhar a aplicação para a tela de entrada

More Related