如何调用网址以处理结果?
我有一个独立的报告servlet,我链接到报告。我想现在通过电子邮件发送这些报告,如果我在浏览器中这样做,我可以使用xhttprequest,并处理结果 - 我基本上想用Java做同样的事情,但我不知道该如何去做它
更新:我想从网址获取一个文件(无论是pdf还是HTML等)。
更新:这将完全在服务器上运行 - 没有触发电子邮件的请求,而是预定的电子邮件。
答案 0 :(得分:7)
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();
}
}
编辑:清理代码。
答案 1 :(得分:1)
查看URL和URLConnection类。以下是一些文档:http://www.exampledepot.com/egs/java.net/Post.html
答案 2 :(得分:1)
如果打算在servlet执行时运行另一个资源而不将控制转移到另一个资源,则可以尝试使用include(request,response)。
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/url of other resource");
if (dispatcher != null)
dispatcher.include(request, response);
}
您可以将它放在servlet上,其他资源的结果包含在您的servlet中。
编辑:由于您希望获得一个文件,因此该解决方案也适用于此。