質問
結果を処理するためにどのようにURLを呼び出すのですか?
レポート用にリンクするスタンドアロンのレポートサーブレットがあります。今、これらのレポートを電子メールで送信したいのですが、ブラウザでこれを行っている場合は、xhttprequestを使用して結果を処理することができます-基本的にJavaでも同じことをしたいのですが、どうすればいいのかわかりませんそれ。
更新:URLからファイルを取得したい(PDFまたはHTMLなど)
UPDATE :これは純粋にサーバー上で実行されます。メール送信をトリガーするリクエストはなく、スケジュールされたメールです。
解決
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();
}
}
編集:コードをクリーンアップしました。
他のヒント
URLおよびURLConnectionクラスをチェックアウトします。以下にドキュメントを示します。 http://www.exampledepot.com/egs/java。 net / Post.html
サーブレットの実行中に別のリソースに制御を移さずに別のリソースを実行する場合は、include(request、response)を使用してみてください。
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/url of other resource");
if (dispatcher != null)
dispatcher.include(request, response);
}
これをサーブレットに配置すると、他のリソースの結果がサーブレットに含まれます。
編集:ファイルを取り戻すために探しているので、この解決策もそれに対して機能します。
所属していません StackOverflow