Mandando/Recebendo dados via HTTP

2 respostas
M

Olá Pessoal,

Há 2 dias que quebro a cuca tentando resolver um [size=18]mistério[/size]: uma aplicaçãozinha minha, em j2me, que até outro dia mandava dados "de boa" pra um servidor (Linux+Apache+PHP) simplesmente parou de enviar...!

E isso aconteceu +/- depois da Locaweb me trocar de servidor.

Para o programa PHP que recebe o POST, é como se não chegasse nada... :shock:

(mas se eu enviar através de um formulário html, vai que vai!)

Alguém já ouviu falar de alguma incompatibilidade de Apache, recebendo dados de um j2ME ??? :?:

Bem, vou colocar aqui o código pra ver se alguém consegue enxergar alguma coisa que eu não consegui depois de HORAS em cima disso:

(GENTE, peloamordedeus, de dêem um help! Olha a hora que eu tô indo dormir, com os zóio cheio de areia, pra tentar achar a solução desse pobrema... rssssss)

public class HttpHandler extends Thread {
    
   
    String url="http://www.servidor.com.br/sistema/java/j2me_rec.php";
    protected StringBuffer buff=new StringBuffer();
    String rep=null;
    public String sendData=null;
    HttpListener hListener = null;
    
    public HttpHandler(HttpListener h){
        hListener = h;
    }
    
    synchronized public void run(){
        try{
            HttpConnection hc = (HttpConnection)Connector.open(url);            
            hc.setRequestMethod(HttpConnection.POST);
            hc.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0");
            //hc.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.1");
            hc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            DataOutputStream dos=hc.openDataOutputStream();             
            dos.write(sendData.getBytes());
            dos.flush();
            dos.close();
            
		if (hc.getResponseCode()==hc.HTTP_OK) {
			// You have successfully connected.
			DataInputStream dis = hc.openDataInputStream();
			// Now Process your request.                       
                        int ch = dis.read();
                        while (ch!=-1){
                            buff.append((char)ch);
                            ch = dis.read();
                        }
                       rep=buff.toString();
                       hListener.processRequest(rep);
                       dis.close();                         
                }
                }catch(SecurityException se){
                    se.printStackTrace();
                }
                 catch(IOException ioe){
                    System.out.println(ioe.getMessage());
                }
    } 
}

Agradeço Antecipadamente!

::Marcello Capelati::

2 Respostas

rafaelzulin

Cara não sei resolver seu problema. Mas eu estava usando o mesmo esquema que você. Era meio estranho e direto dava pau. Daí resolvi mudar para webservice. Melhorou bastante. Eu usei tomcat + axis + ksoap2. Muito fácil de usar. Mas enfim, só uma dica.

t+

M

Acho que eu não poderia usar isso lá na Locaweb…

O fato estranho é:

= Vou seguindo pelo debug, e as informações estão todas lá, do jeito que devem ser enviadas.
= A chamada ao PHP é feita (vejo pelo LOG do Apache)
= Mas as variáveis do POST não são enviadas (tento receber pelo PHP, pelos $_POST[] da vida, e nada!)

Poderia ser alguma “configuração” no próprio NetBeans (6.5.1), que está gerando um código com algo faltando?

Criado 7 de agosto de 2009
Ultima resposta 7 de ago. de 2009
Respostas 2
Participantes 2