Olá pessoal tudo bem?
Bom estou fazendo uma aplicação mobile com conexão http. Essa conexão direciona para um servidor web rodando no apache PHP + MySql.
A parte de servidor está ok, tanto é que quando eu passo parâmetros via Get no browser, a consulta no banco é feita e retornada na página PHP normalmente.
Meu problema é a conexão http no J2ME. Quando eu coloco uma palavra chave no TextField, ele deve fazer a conexão http do tipo GET passando a url do meu localhost, retornando para o aparelho a consulta. Como resposta eu tenho um TextBox onde deve aparecer através de um setString. Porém na minha tela aparece um erro de Airtime, perguntando se eu desejo roda-lo mesmo assim, e quando rodo, o TextBox de resposta volta sempre vazio, ele não consegue fazer a conexão.
Lembrando que no meu código eu uso threads separadas, ou seja, o problema não é esse.
Segue aqui somente o código de conexão (já que a aplicação tem um código extenso):
//Inicia método conexao------------------------------------------------------------------------------->>
public void solicitacao(String url){
//objetos para conexao
HttpConnection conexao=null;
InputStream entrada=null;
try{
//cria a conexao com endereço da url
conexao = (HttpConnection)Connector.open(url);
//configura o metodo de envio dos dados
conexao.setRequestMethod(HttpConnection.GET);
//fluxo de dados de entrada, para receber a resposta
entrada = conexao.openInputStream(); //fluxo de entrada relacionado com a conexao
// Pega o tamanho dos dados recebidos
int tam = (int)conexao.getLength(); //tamanho da resposta enviada pelo servidor
byte[] dados = new byte[tam]; //para armazenar os dados obtidos do fluxo
if (tam > 0) {
entrada.read(dados);
String dados_string = new String(dados); //converte vetor de bytes em String
txtDados.setString(dados_string); //mostra os dados no TextBox
}
else
txtDados.setString("Sem resposta"); //na tela do aparelho
}catch (Exception e){
txtDados.setString(e.getMessage());
}
display.setCurrent(txtDados);
}
private class ThreadDaConexao extends Thread {
private String url;
ThreadDaConexao(String url) {
this.url = url;
}
public void run() {
try{
solicitacao(url);
}
catch (Exception e){
}
}
}//fim blobo conexao
Aqui é o command da Busca, onde aciona o código acima:
if (command == cmdBuscar){// Pressionado buscar
String url=“http://localhost/livros.php?operacao=consultar&txtBusca=”+txtBusca.getString();
ThreadDaConexao t = new ThreadDaConexao(url);
t.start();
}