如何調用url以處理結果?從java中的http請求獲取文件
我有一個獨立的報告servlet,我鏈接到報告。我現在想給這些報告發電子郵件,如果我在瀏覽器中這樣做,我可以使用xhttprequest並處理結果 - 我基本上想在Java中做同樣的事情,但我不知道如何去做它。
UPDATE:我正在尋找從URL(無論是PDF或HTML等)的文件。
UPDATE:這將純粹在服務器上運行 - 沒有觸發電子郵件的請求,而是一個計劃的電子郵件。
如何調用url以處理結果?從java中的http請求獲取文件
我有一個獨立的報告servlet,我鏈接到報告。我現在想給這些報告發電子郵件,如果我在瀏覽器中這樣做,我可以使用xhttprequest並處理結果 - 我基本上想在Java中做同樣的事情,但我不知道如何去做它。
UPDATE:我正在尋找從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
謝謝你,現在結賬。 – RodeoClown 2008-10-27 00:06:58
如果您的意圖是運行另一個資源,而您的servlet正在執行,而無需將控制權轉移給其他資源,則可嘗試使用include(請求,響應)。
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/url of other resource");
if (dispatcher != null)
dispatcher.include(request, response);
}
你可以把它放在一個servlet上,其他資源的結果包含在你的servlet中。
編輯:既然你正在尋找一個文件,那麼這個解決方案也適用於此。
謝謝文森特。 它看起來並不像我所期望的那樣 - 我不想在響應中包含任何內容。在這種情況下沒有響應(這是一個純粹運行在服務器端的計劃任務)。 – RodeoClown 2008-10-27 00:31:33
嗨艾伯特,謝謝你 - 我會試試看。 – RodeoClown 2008-10-27 00:35:28