Enviar Post (Applet -> Servlet)

10 respostas
jpcasati

Não estou conseguindo de jeito nenhum enviar dados por método post de um applet para um servlet, já tentei todos os exemplos e explicações que encontrei na internet e nada. alguém poderia me ajudar?

obrigado.

10 Respostas

Rafael_Nunes
HttpClient client = new HttpClient();
client.getParams().setParameter("http.useragent", "Application");
PostMethod method = new PostMethod("http://localhost:8080/app/meu_servlet");
method.addParameter("nome", "valor");

int returnCode = client.executeMethod(method);
		
System.out.println(method.getResponseBodyAsString());
jpcasati

valeu cara!

acredito que esteja td certo aki coma aplicação, só não consigo fazer meu applet rodar com essa biblioteca do http client.

ele dá erro na execução.

como eu faço:

pego os .class do applet e jogo dentro do projeto web, para que um jsp abra a applet.

Rafael_Nunes

Seu cliente vai precisar ter o httpclient.jar no classpath dele.

Se isso não for possível, faz um POST via JSE mesmo:

try {
       
        String data = URLEncoder.encode("var1", "UTF-8") + "=" + URLEncoder.encode("valor1", "UTF-8");
        data += "&" + URLEncoder.encode("var2", "UTF-8") + "=" + URLEncoder.encode("valor2", "UTF-8");
    
       
        URL url = new URL("http://localhost:8080/app/meu_servlet");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
    
        
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
           //faz algo com o response
        }
        wr.close();
        rd.close();
    } catch (Exception e) {
    }
jpcasati

Já coloquei ele no classpath do projeto do applet, pra usar os métodos, e no classpath do projeto web.
ele da erro ao executar o applet, diz que nao encontra as classes do httpclient, acho que não tá compilando junto. e nao consegui fazer o applet compilar junto.

o outro método dá erro no método:

OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

ele não passa daí, não sei porque…

Rafael_Nunes

Você tem de inserir o httpclient.jar no CLASSPATH do cliente, na máquina onde está sendo executado o applet, e não no projeto.

jpcasati

Não há reza q faça funcionar, meu código:

//APPLET
private void postResult() {
        try {

            String data = URLEncoder.encode("senha", "UTF-8") + "=" + URLEncoder.encode("valor1", "UTF-8");
            data += "&" + URLEncoder.encode("var2", "UTF-8") + "=" + URLEncoder.encode("valor2", "UTF-8");

            URL url = new URL("http://localhost:8084/Transmissao/SrvEnviaMensagem");
            URLConnection conn = url.openConnection();

            conn.setDoOutput(true);

            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

            wr.write(data);

            wr.flush();

            BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;

            while ((line = rd.readLine()) != null) {
                //faz algo com o response
            }

            wr.close();
            rd.close();

            getAppletContext().showDocument(url);

        } catch (Exception e) {
        }
    }

O parâmetro chega nulo ao servlet.

eu estou pegando ele com request.getParameter

seria de outro jeito?

esta faltando alguma coisa?

nào entendi tb esse negócio do response, se preciso fazer algo com ele e tal… essa variavel n tem utilidade (line).

Vlw!

jpcasati

Up aí, se alguem souber, preciso deste programa rodando pra terça pra apresentar o tcc, e só falta esse post funcionar!

Obrigado.

jpcasati

Será que alguém pode me ajudar? pode ser qualquer gambiarra que faça enviar uma string do applet pra um servlet trabalhar em cima dela. Menos por GET pq a string eh grande.

jpcasati

up ai, tentei de td, deve ser alguma coisinha q to errando… to precisando mto desse envio… se alguem puder me ajudar…

Y

Ola desculpa incomodar, mas estou com um problema parecido com o q vc teve no apple e ja to ficando careca kra…
O programa faz o seguinte gera uma img num applet e envia para o server localhost:8084 (netbeans) isto esta funcionando (gritos de alegria), mas como pobre num tem sorte, fiz o deploy no tomcat 5.5 localhost:8080 e a aplicação parou de funcionar quando chama o servlet… olhei no log do apache ele inicializa (chama) o servlet mas num tem resposta… da um erro 500 ou fica sem resposta do servlet.

Por favor me ajuda ai... qualquer informação,dica, é valida.

Agradeço,
Daniel
Criado 26 de novembro de 2008
Ultima resposta 13 de fev. de 2009
Respostas 10
Participantes 3