Problemas em envio de dados por metodo "post"

5 respostas
ocanema

estou tentando enviar um dado para uma servlet pelo metodo post e receber o conteudo , mas o que eu mando pelo emulador do dispositivo, não é recebido pela servlet.Testei a servlet por meio de um formulario html por método post e deu tudo certo.. o que pode estar errado??

aqui tá o código do metodo que envia as informações...

private void lookupBalance_withPOST() throws IOException
  {
     Thread t = new Thread(new Runnable(){
         public void run(){
            HttpConnection http = null;
            OutputStream oStrm = null;
            InputStream iStrm = null;    
            boolean ret = false;
  
            String url = "http://10.0.60.5:8080/testeII/InsertDate";
             
            try
            {
                http = (HttpConnection) Connector.open(url);
                oStrm = http.openOutputStream();
      
                http.setRequestMethod(HttpConnection.POST); 
                http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

                 byte data[] = ("data=" + tTeste.getString()).getBytes();
                 oStrm.write(data);
      
                iStrm = http.openInputStream();       
                ret = processServerResponse(http, iStrm);
                }
                catch(IOException e){
                        e.printStackTrace();
                }
                finally
                {
                    // Clean up
                    if (iStrm != null)
                    
                        try {
                            iStrm.close();
                        } catch (IOException ex) {
                            ex.printStackTrace();
                        }
                    if (oStrm != null)
                    
                        try {
                            oStrm.close();        
                        } catch (IOException ex) {
                            ex.printStackTrace();
                        }        
                    if (http != null)
                    
                        try {
                            http.close();
                        } catch (IOException ex) {
                            ex.printStackTrace();
                        }
                }

                // Process request failed, show alert    
                if (ret == false)
                showAlert(errorMsg);
                }
     });
     t.start();
 }

e aqui o servlet!

import javax.servlet.http.*;
import javax.servlet.*;
import java.util.*;
import java.io.*;
import java.sql.*;

public class InsertDate extends HttpServlet{
	public void doPost (HttpServletRequest request, 
		            HttpServletResponse response) throws ServletException, IOException{
		
		
		response.setContentType("text/plain");
		PrintWriter out = response.getWriter();
		out.println("Foi mandado o valor " + request.getParameter("data"));
		out.close();
	}
	public void doGet(HttpServletRequest request, 
			  HttpServletResponse response) throws ServletException, IOException{
       		doPost(request,response);
	}
}

Obrigado desde já ^^

5 Respostas

fabianofrizzo

Bom o idela é criar um classe que extenda Threads ou que implementa Runnable

mas da uma olhada nesse link veja se vc consegue entender.

http://www.guj.com.br/posts/list/66077.java#349086

Qualquer coisa posta ai de novo

fabianofrizzo

Epa duplicou o POST

ocanema

Mas no metodo Get funciona legal mesmo com a Thread separada…
Sera que o problema é so a thread mesmo?

fabianofrizzo

Mas no metodo Get funciona legal mesmo com a Thread separada…
Sera que o problema é so a thread mesmo?

Me Expressei mal

Eu quis dizer que fui postar a resposta e acabou postando duas vezes.

hayase

funcionou o seu programa?
normalmente um servlet só possui um método doPost....

veja esta parte do seu código
public class InsertDate extends HttpServlet{   
    public void doPost (HttpServletRequest request,   
                    HttpServletResponse response) throws ServletException, IOException{   
           
           
        response.setContentType("text/plain");   
        PrintWriter out = response.getWriter();   
        out.println("Foi mandado o valor " + request.getParameter("data"));   
        out.close();   
    }   
    public void doGet(HttpServletRequest request,   
              HttpServletResponse response) throws ServletException, IOException{   
            doPost(request,response);   
    }   
}
principalmente as linhas
public void doGet
(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{   
           doPost(request,response);   
}   
}

o q extamente vc quis fazer aki?

abraços

Criado 21 de setembro de 2007
Ultima resposta 27 de set. de 2007
Respostas 5
Participantes 3