na Midlet esou usando esse código…
ele acessa normalmente pois ele cria o arquivo de texto quando acessa a página, e está criando normalmente, só não está enviando corretamente a String para escrever no arquivo…
De uma olhada neste Classe, é uma Thread que solicita alguns dados de uma servlet que no meu caso possui conexão com banco de dados, e retorna um ByteArray, após verificar se o download foi executado corretamente, leio as informações e gravo em um RMS dentro do meu dispositivo movel.
classImportDataextendsThread{publicvoidrun(){try{HttpConnectioncon=(HttpConnection)Connector.open("http://localhost:8080/ServerDatabaseB/ServletDatabase?protocolo=passo1");intstatus=con.getResponseCode();if(status==HttpConnection.HTTP_OK){DataInputStreamin=con.openDataInputStream();Stringcandidato=in.readUTF();if(candidato.equals("Erro Servidor")){get_alStatus().setString("Erro no servlet! Provavelmente BD");getDisplay().setCurrent(get_alStatus(),get_lsPrincipal());}else{while(!candidato.equals("fim")){inserirRMS(candidato,0);candidato=in.readUTF();}get_alStatus().setString("Terminou de importar candidatos");getDisplay().setCurrent(get_alStatus(),get_lsPrincipal());}}else{get_alStatus().setString("Erro: Conexão Codigo "+status);getDisplay().setCurrent(get_alStatus(),get_lsPrincipal());}}catch(Exceptione){get_alStatus().setString("Erro: Conexão "+e.getMessage());getDisplay().setCurrent(get_alStatus(),get_lsPrincipal());}}privatevoidinserirRMS(Stringcandidato,intvoto){try{ByteArrayOutputStreambout=newByteArrayOutputStream();DataOutputStreamout=newDataOutputStream(bout);out.writeUTF(candidato);out.writeInt(voto);out.flush();rs.addRecord(bout.toByteArray(),0,bout.toByteArray().length);}catch(RecordStoreNotOpenExceptionex){ex.printStackTrace();}catch(IOExceptionex){ex.printStackTrace();}catch(RecordStoreExceptionex){ex.printStackTrace();}}}
Espero ter ajudado, qualquer duvida poste novamente aqui.
N
npereirajr
No DevMobile.blog.br tem um artigo que ensina a fazer requisições web usando HttpConnection.
Abraço.
joan
consegui pessoal… obrigado pela ajuda de todos
ai vai o código para quem quizer um exemplo de como enviar uma String com o método POST para um Servlet…
testei e funciona tudo perfeitinho… nesse exemplo ele não recebe resposta do servlet, apenas envia a String.
importjava.io.OutputStream;importjavax.microedition.io.Connector;importjavax.microedition.io.HttpConnection;/** * * @author Administrador */publicclassSendPedServlet{// Thread t = new Thread( ) { // public void run( ) { publicSendPedServlet(StringStrEnviar){try{HttpConnectionconection=(HttpConnection)Connector.open("http://localhost:8084/WorkService/GravaItensServlet",Connector.READ_WRITE);conection.setRequestMethod(HttpConnection.POST);conection.setRequestProperty("IF-Modified-Since","20 Jan 2001 16:19:14 GMT");conection.setRequestProperty("User-Agent","Profile/MIDP-1.0 Confirguration/CLDC-1.0");conection.setRequestProperty("Content-Language","en-CA");conection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");Stringdados="dados="+StrEnviar;//"dados=" é o parametro do Servlet, o que vier seguinte é a String a ser enviada.byte[]data=dados.getBytes();conection.setRequestProperty("Content-Length",Integer.toString(data.length));/* passando parâmetros */OutputStreamout=conection.openOutputStream();out.write(data);out.close();}catch(Exceptione){}finally{}}}
joan
ah… o código do servlet está mais acima… ele tbem tá funcionando direitinho…
se voce usar esse codigo e não der certo deixe uma mensagem pra agente ajudar…