Navigation

Eigene Programme

Codeschnipsel

Libraries

english

DownloadHelper

Java bietet mächtige Möglichkeiten, wenn es um die Kommunikation mit Servern geht. Dummerweise bietet es keine einfachen Möglichkeiten. Aus diesem Grund habe ich für mich schon vor einiger Zeit eine Hilfsklasse gebaut, die die kommunikation mit normalen Webservern erleichtert. Sie besteht aus folgenden Funktionen:

Genauere Informationen zu den Funktionen und deren Parametern ist im Javadoc zu finden.

Beispiel:

ArrayList answer = null;
try {
	// download a page.	page to download/no referer/default user agent/timeout (5 sec)/3 retries
	answer = klaue.DownloadHelper.Downloader.downloadPage(new URL("http://www.xkcd.com/"), null, null, 5000, 3);
} catch (Exception e) {
	e.printStackTrace();
}

if (answer == null) {
	System.out.println("some error happened");
} else {
	System.out.println("Downloaded page:");
	// print out first 6 lines
	for (int i = 0; i < 6; ++i) {
		System.out.println(answer.get(i));
	}
}

Ergibt:

Downloaded page:
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/static/general.css" type="text/css" media="screen" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe</title>

Download (Source & Classes): DownloadHelper.jar

Änderungen:
27.02.2011:
- Ein Threading-Problem im Cookie-Handler behoben
- Wartezeit von einer Sekunde bei Retry hinzugefügt
- Einen Bug im Retry bei downloadPost behoben