Resposta por post

10 respostas
S

Olá! Estou desenvolvendo um sisteminha, a parte web dele funcionava com Applet/servlet. Só que é por GET e tratando-se de user/senha não é legal isso. pode copiar a url por exemplo e acessar a conta do cliente. Queria fazer por post, mudei o meu código na applet e ficou assim:

// Construct data
        String data = URLEncoder.encode("T1", "UTF-8") + "=" + URLEncoder.encode(s1, "UTF-8");
        data += "&" + URLEncoder.encode("T2", "UTF-8") + "=" + URLEncoder.encode(s2, "UTF-8");
    
        // Send data
        URL url = new URL("http://localhost:8080/Bone/Logar");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
    
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
            // Process line...
        }
        wr.close();
        rd.close();

Não dá nenhum erro, mas como eu trato isso na servlet? Como faz pra responder e o applet entender? No meu exemplo eu ponho user e senha e não acontece nada… como nao deu erro eu suponho que está enviando mas o servlet n sabe o que fazer. Obrigado!!

10 Respostas

S

ngm entende comunicação applet/servlet?

Rafael_Nunes

Ja tentou o HttpClient?

PostMethod post = new PostMethod("http://localhost:8080/app/login");
 NameValuePair[] dados = {
    new NameValuePair("user", "rafael"),
    new NameValuePair("password", "666")
    };
 post.setRequestBody(dados);
        
  client.executeMethod(post);
  InputStream in = post.getResponseBodyAsStream();
  // macumbas com o inputstream
S

beleza, isso na applet. e na servlet, como eu respondo?

S

putz to apanhando demais aqui… alguem pode postar um exeplo de codigo que a applet mande uma string (ou bytes)pro server, o server processe e responda? isso por post. Obrigado!! tá uma puta gambiarra o que to fazzendo… transformei em objeto o user/senha, mandei pro servlet e ele devolve uma string mas nao funciona =/

S

Nada? pode ser um hello world de request/response com post. já ajuda bastante, e agradeço prontamente :smiley:

sjoaquim

No servlet você trata da mesma forma que tratava com o GET. Mas ao invés de usar o método doGet, você usa o método doPost.

Rafael_Nunes

Recebe no servlet dentro do seu doPost e trata a requisição.

S

Opa, vlw!!! Mas então, eu não devolvia a resposta pro cliente, ao invéz disso eu usava out.write("<html>…") e aparecia numa página

sjoaquim

Você pode fazer desse mesmo jeito se quiser no doPost também!

Rafael_Nunes

Dá uma olhada na documentação do HttpClient que você consegue pegar o conteúdo do response como um Stream ou uma String. Aí é só fazer o que quiser com os dados.

Criado 26 de agosto de 2008
Ultima resposta 26 de ago. de 2008
Respostas 10
Participantes 3