Chamada HTTP no JSP

7 respostas
cs.santos0

iai pessual, como é q ta??

então, tenho que realizar uma chamada http, mas não sei como implementar na prática…

seguinte, tenho uma url, por exemplo: http://localhost:8081/xxx/yyyy/ssss

ai gostaria de fazer uma chamada http dessa url dentro do meu jsp…

alguem ai sabe como posso fazer isso?

vlw

7 Respostas

cs.santos0

ninguem?

_fs

Entendi que você precisa fazer essa chamada sem navegar ou fazer um dispatch. Nesse caso basta fazer assim:
http://www.exampledepot.com/egs/java.net/Post.html

Se precisa de algo mais complexo, recomendo commons-httpclient:
http://hc.apache.org/httpclient-3.x/userguide.html

Um pequeno ps: dar um upzinho no post depois de 1:40h é sacanagem ;D

cs.santos0

vlw a resposta,

try {
        // Construct data
        String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
        data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
    
        // Send data
        URL url = new URL("http://hostname:80/cgi");
        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();
    } catch (Exception e) {
    }

sera que vc poderia me explicar oq faz essa parte:

URL url = new URL("http://hostname:80/cgi");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();

se vc puder me ajudar, agradeço bastante...

PS: quanto ao up é que realmente preciso entregar isso ai e não encontrei nda ainda...na net

vlw

cs.santos0

o que eu preciso fazer é acessar uma pagina onde estao os relatorios dentro de uma outra aplicação de BI…só que quando eu chamo o link dessa pagina de relatorios ele cai em um login…só que não é interesante o cliente clicar em um menu relatorios e aparecer a tela de login, então o ideial é passar automaticamente pela tela de login do sistema de BI…

a seguinte url faz isso:

http://127.0.0.1:8081/pentaho/j_acegi_security_check?j_username=joe&j_password=password

ou seja antes de eu acessar a tela de relatorios eu preciso executar essa url para eu poder ficar autenticado…

será que alguem ai pode me dar um help por favor…

vlw

_fs

Manter o estado é um pouco mais complicado, neste caso recomendo usar o commons-httpclient:
http://www.guj.com.br/posts/list/87039.java

cs.santos0

esse exemplo do link q vc me passou tem uns negocios com cookies, acho q nem preciso disso…eu baixei o HttpClient, fiz um teste aki igual esta no site…mas não entendo como posso fazer para o meu caso…

pq acredito que a unica coisa q devo fazer é executar essa url e mais nda…ai dessa forma terei o login na sessão do pentaho…

vc teria um exemplo bem simples de como posso usar o HttpClient nesse caso??

vlw

_fs

Você tem que entender como o mecanismo de sessão funciona.

Basicamente uma chave é guardada nos cookies ou enviada via url em cada requisição. Essa chave normalmente é gerada automaticamente quando um usuário acessa alguma página da aplicação.
Sendo assim, você provavelmente tem que guardar esta chave para reenviar na segunda requisição (a primeira de login, a segunda para pegar o relatório).

E infelizmente não tenho um exemplo.

Criado 7 de abril de 2008
Ultima resposta 7 de abr. de 2008
Respostas 7
Participantes 2