metodos - peticiones http java
Obtener un archivo de una solicitud http en java (3)
¿Cómo llamo a una url para procesar los resultados?
Tengo un servlet de informes independiente al que me enlace para informes. Quiero enviar estos informes ahora, si estuviera haciendo esto en el navegador, podría usar una xhttprequest y procesar los resultados; básicamente quiero hacer lo mismo en Java, pero no estoy seguro de cómo hacerlo. eso.
ACTUALIZACIÓN : estoy buscando recuperar un archivo de la url (ya sea un pdf o html, etc.).
ACTUALIZACIÓN : se ejecutará exclusivamente en el servidor; no hay una solicitud que desencadene el envío de correos electrónicos, sino que se trata de un correo electrónico programado.
Echa un vistazo a las clases URL y URLConnection. Aquí hay algo de documentación: http://www.exampledepot.com/egs/java.net/Post.html
Si la intención es ejecutar otro recurso mientras su servlet se está ejecutando sin transferir el control al otro recurso, puede intentar usar include (solicitud, respuesta).
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/url of other resource");
if (dispatcher != null)
dispatcher.include(request, response);
}
Puede poner esto en un servlet y el resultado del otro recurso se incluye en su servlet.
EDITAR: Ya que está buscando recuperar un archivo, esta solución también funciona.
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();
}
}
Editar: limpió el código.