A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

G ENERIC C ONNECTION F RAMEWORK Prof. André Assad

Apresentações semelhantes


Apresentação em tema: "G ENERIC C ONNECTION F RAMEWORK Prof. André Assad"— Transcrição da apresentação:

1 G ENERIC C ONNECTION F RAMEWORK Prof. André Assad

2 C OMUNICAÇÃO DE D ADOS Meios de comunicação (dispositivos móveis) Infravermelho Rádio TDMA CDMA GSM: GPRS, EDGE, 3G Bluetooth NFC Portas seriais

3 C OMUNICAÇÃO DE D ADOS Protocolos de comunicação (dispositivos móveis) RS-232 HTTP Socket SMS

4 C OMUNICAÇÃO DE D ADOS

5 I NTRODUÇÃ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 C ONEXÃO G ENÉ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 A BRINDO UMA C ONEXÃO Exemplos de abertura de conexão: Connector.open(http://uol.com.br); Connector.open(socket:// ); 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 ConnectionConnector CommConnection ContentConnection DatagramaConnection HttpConnection HttpsConnection InputConnection OutputConnection SecureConnection SocketConnection StreamConnection UDPConnection ServerSocketConnection

10 GCF - API public static final int READ public static final int WRITE public static final int READ_WRITE public static Connection open (String name) throws IOExceptionConnectionStringIOException public static Connection open (String name, int mode) throws IOExceptionConnectionString IOException public static InputStream openInputStream (String name) throws IOExceptionInputStreamString IOException public static DataInputStream openDataInputStream (String name) throws IOExceptionDataInputStreamStringIOException public static DataOutputStream openDataOutputStream (String name) throws IOExceptionDataOutputStreamStringIOException public static OutputStream openOutputStream (String name) throws IOExceptionOutputStreamStringIOException

11 P ROTOCOLO 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 P ROTOCOLO HTTP Cliente HTTP Servidor Web Pedido Resposta

13 P ROTOCOLO HTTP

14 C OMANDOS 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 R EQUISIÇÃ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 C ABEÇALHOS HTTP Configurarando os campos do cabeçalho HttpConnection http = null; http = (HttpConnection) Connector.open(url); http.setRequestMethod(HttpConnection.GET);

17 C ABEÇALHO HTTP Lendo o cabeçalho HTTP public String getHeaderField(int n) public String getHeaderField(String name) public String getHeaderFieldKey(int n) public long getDate() public long getExpiration()

18 S TATUS 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 E XEMPLO - S TREAM C ONNECTION void getViaStreamConnection(String url) throws IOException { StreamConnection c = null; InputStream s = null; try { c = (StreamConnection)Connector.open(url); s = c.openInputStream(); int ch; while ((ch = s.read()) != -1) {... } } finally { if (s != null) s.close(); if (c != null) c.close(); } }

20 E XERCÍCIO HTTP Usando HTTPConnection, desenvolva um MIDLet que deverá fazer um GET na seguinte URL: m.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


Carregar ppt "G ENERIC C ONNECTION F RAMEWORK Prof. André Assad"

Apresentações semelhantes


Anúncios Google