Olá caros colegas. Gostaria de saber se alguém poderia me dar uma ajuda quanto a estabelecer conexões seguras (Https). Utilizo como ferramenta de desenvolvimento o netbeans 6.1 e o tomcat que já vem instalado com ele, versão 6.0.16. No meu código para fazer a conexão, utilizo a classe HttpConnection instanciando um objeto dessa classe e como URL coloco um endereço tipo “https://127.0.0.1:8080/MeuProjeto/”. Por favor, me ajudem a estabelecer uma conexão Https por mais simples que seja. Não sei se precisa adicionar algum patch ao tomcat ou configurar o seu config.xml.
essa é uma conexãao não segura… mas acho que é facil transformar ela em https… parte-se desse principio
/** * @author dtondo */importjava.io.InputStream;importjava.io.OutputStream;importjavax.microedition.io.Connector;importjavax.microedition.io.HttpConnection;publicclassConnection{HttpConnectionconnection=null;InputStreamiStream=null;OutputStreamoStream=null;byte[]dataReceve=null;byte[]dataSend=null;StringxmlRequest;intcode;publicStringdoGet(StringconnectionString)throwsException{try{connection=(HttpConnection)Connector.open(connectionString);code=connection.getResponseCode();if(code==HttpConnection.HTTP_OK){iStream=connection.openInputStream();intlength=(int)connection.getLength();if(length>0){dataReceve=newbyte[length];inttotalBytes=0;intbytesRead=0;while((totalBytes<length)|(bytesRead>0)){bytesRead=iStream.read(dataReceve,totalBytes,length-totalBytes);if(bytesRead>0){totalBytes+=bytesRead;}}}}}catch(Exceptione){thrownewException("to be implemented");}finally{try{if(iStream!=null){iStream.close();}if(connection!=null){connection.close();}}catch(Exceptionex){thrownewException("to be implemented");}}returnnewString(dataReceve);}publicStringdoPost(StringconnectionString)throwsException{try{connection=(HttpConnection)Connector.open(connectionString);connection.setRequestMethod(HttpConnection.POST);oStream=connection.openOutputStream();intxmlLength=xmlRequest.length();if(xmlLength>0){// dataSend have the xml sizedataSend=newbyte[xmlLength];dataSend=xmlRequest.getBytes("UTF-8");oStream.write(dataSend);oStream.flush();}//save the http answer. for more information see: //http://www.helpwithpcs.com/courses/html/html_http_status_codes.htm code=connection.getResponseCode();if(code!=HttpConnection.HTTP_OK){thrownewException("to be implemented");}iStream=connection.openInputStream();intreceveLength=(int)connection.getLength();if(receveLength>0){dataReceve=newbyte[receveLength];inttotalBytes=0;intbytesRead=0;while((totalBytes<receveLength)|(bytesRead>0)){bytesRead=iStream.read(dataReceve,totalBytes,receveLength-totalBytes);if(bytesRead>0){totalBytes+=bytesRead;}}}// a good choise is return your string in utf-8returnnewString(dataReceve,"UTF-8");}catch(Exceptione){e.printStackTrace();thrownewException("to be implemented");}finally{try{//that does nothingif(iStream!=null){iStream.close();}if(oStream!=null){oStream.close();}if(connection!=null){connection.close();}}catch(Exceptione){thrownewException("to be implemented");}}}}
vanessasouza
Ola andersontoshio, to fazendo projeto final em JME, no inicio do ano tive um problema desse tipo, pois tinha feito em http e queria colocar para https e nao conseguia, descobri o seguinte:
O acesso via https em celulares com J2ME só pode ser feito nas seguintes condições:
A MIDP utilizada deve ser a 2.0 ou superior
O autenticador de certificado (CA) não pode ser você (isto é , o certificado não pode ser gerado pelo keytool da JDK, isso é não pode ser o tomcat), e sim um certificador confiável (por exemplo Certsign).
Galera valeu pela ajuda! Vou estudar o conteúdo que me enviaram, tanto os código quanto as páginas de referência. Vlw mesmoo!!! Qlqr dúvida volto aqui pra pedir socorro!