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."
?>

Space do autor

download
Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

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