Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Acessando um webservice PHP com J2ME

Esta é uma dica de implementação de comunicação com um webservice PHP, onde um comando invocará uma resposta enviada por um servidor remoto.

import java.io.InputStream;

import javax.microedition.io.*;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

/**

 *

 * @author  damazio

 * @version

 */

public class Comunicador extends MIDlet implements CommandListener {

   

    private Form FormTeste;

    private Display display;

    private Command okCommand1;

    private Command exitCommand1;

    private StringItem stringItem1;

   

    public Comunicador() {

          display = Display.getDisplay(this);

          // quando iniciado o aplicativo, o construtor é invocado neste ponto montamos o

          // formulario criando 1 objeto que recebera a informação da comunicação com o webservice

          stringItem1 = new StringItem("Conectar? \n", "");

         

          // criando um objeto do tipo formulário. Este objeto é essencial para exibir os outros objetos texto

          FormTeste = new Form("Formulário Teste");

         

          // adicionando o objeto texto ao formulário

          FormTeste.append(stringItem1);

         

          // criando o comando de sair e conectar. O comando comunicar irá invocar o webservice

          exitCommand1 = new Command("Sair", Command.EXIT,1);

          okCommand1 = new Command("Conectar", Command.OK,1);

         

          // adicionando os comando de sair e conectar ao formulario

          FormTeste.addCommand(okCommand1);

          FormTeste.addCommand(exitCommand1);

 

          // setando os comandos para serem reconhecidos ao manipular o teclado

          // é preciso que a assinatura da classe implemente o CommandListener

          FormTeste.setCommandListener(this);       

       

    }

    

    public void startApp() {

        display.setCurrent(FormTeste);

    }

   

    public void pauseApp() {

    }

   

    public void destroyApp(boolean unconditional) {

            display.setCurrent(null);

 

            // notificando o encerramento do aplicativo ao gerenciador do dispositivo

            notifyDestroyed();        

    }

   

    public void commandAction(Command comando, Displayable s)

    {

        // Caso algum comando seja acionado, verifica-se se foi o comando de saída

        if (comando == exitCommand1)

        {

            destroyApp(true);

        }

        if (comando == okCommand1)

        {

            stringItem1.setLabel("Conectando: \n");

            stringItem1.setText("aguarde...");

           

            // para realizar a conexão, por garantia esta é realizada através de thread

            // para iniciar uma thread, o método utilizado é START

            new ConnectionThread().start();

        }

     }

   

   private class ConnectionThread extends Thread {

        

       // o método RUN é invocado quando a thread é instanciada através do comando START

       public void run(){

 

                try {

                    // esta é a URL de conexão com o webservice PHP

                    HttpConnection con = (HttpConnection)Connector.open("http://127.0.0.1/webservice/index.php");

                   

                    int status = con.getResponseCode();

                    StringBuffer resposta = new StringBuffer("");

 

                    // se a comunicação foi realizada com sucesso a variável STATUS receberá OK como resposta

                    if ( status == HttpConnection.HTTP_OK ) {

                         InputStream in = con.openInputStream();

                         int dataInt = in.read();

                         while ( dataInt != -1 ) {

                             byte dataByte = (byte)dataInt;

                             // a resposta chega byte por byte e precisa ser concatenada

                             resposta.append((char)dataByte);

                             dataInt = in.read();

                         }

                                                 

                         stringItem1.setLabel("Conectado:\n");

                         stringItem1.setText(resposta.toString());

                    }

                    else {

                        stringItem1.setText("Não foi realizar a conexão!");

                    }

                }

                catch (Exception e) {

                    e.printStackTrace();

                }

        }

 

    }   

}

 

 

Do lado do webservice PHP o trecho de código é simples, somente para retornar uma informação de comunicação realizada com sucesso e a data e horário da comunicação.

 

-- Arquivo com nome de index.php

<?php

 

  $data_hora = date(d/m/Y H:i:s,time());

  echo "A comunicação foi realizada com sucesso!\n $data_hora."

 

?>





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Autor
Damázio Pereira Texeira

Graduado em Sistemas de Informação pela UNIPAC. Pós-Graduado em Redes de Telecomunicações e Mestrando em Engenharia de Software pela UFMG. Analista de Sistemas da Digicade Tecnologia, desenvolvendo softwares de informação geográfica.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
2   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Mobile magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03