Pergunta

Como posso chamar um url para processar os resultados?

Eu tenho um servlet relatórios stand-alone que eu conectar-se a para relatórios. Eu quero enviar esses relatórios agora, se eu fosse fazer isso no navegador, eu poderia usar apenas um xhttprequest e processar os resultados - Basicamente, eu quero fazer a mesma coisa em Java, mas eu não tenho certeza de como ir sobre -lo.

Atualizar :. Eu estou olhando para obter uma volta arquivo da URL (mesmo que seja um pdf ou html etc)

Atualizar :. Este será executado puramente no servidor - não há nenhum pedido que desencadeia a e-mail, mas sim um e-mail agendada

Foi útil?

Solução

public byte[] download(URL url) throws IOException {
    URLConnection uc = url.openConnection();
    int len = uc.getContentLength();
    InputStream is = new BufferedInputStream(uc.getInputStream());
    try {
        byte[] data = new byte[len];
        int offset = 0;
        while (offset < len) {
            int read = is.read(data, offset, data.length - offset);
            if (read < 0) {
                break;
            }
          offset += read;
        }
        if (offset < len) {
            throw new IOException(
                String.format("Read %d bytes; expected %d", offset, len));
        }
        return data;
    } finally {
        is.close();
    }
}

Edit:. Limparam o código

Outras dicas

Confira as classes URL e URLConnection. Aqui está alguma documentação: http://www.exampledepot.com/egs/java. net / Post.html

Se a intenção é executar outro recurso, enquanto o seu servlet está executando com a transferência do controle para o outro recurso que você pode tentar usar include (request, response).

RequestDispatcher dispatcher =
   getServletContext().getRequestDispatcher("/url of other resource");
if (dispatcher != null)
   dispatcher.include(request, response);
} 

Você pode colocar isso em um servlet e o resultado do outro recurso está incluído em seu servlet.

EDIT: Desde que você está olhando para obter um arquivo de volta, em seguida, esta solução funciona para isso também

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top