Muß jetzt auch mal wieder Zeugs per HTTP runterladen.
Hab dafür aber ein zugegebenermassen nicht perfektes selbstgeschriebenes Framework.
Basierend darauf war ich in einer halben Stunde fertig. Intern läuft das mit jakarta.commons.HTTPClient
Eine Superklasse von FacadeBase (doofer Name) schreiben.
package de.spintegration.remoting.http;
import java.util.Map;
public class FacadeNotesDocs extends FacadeBase {
FacadeNotesDocs(Map configHttp) {
super(configHttp);
}
public String scrapeContent (final String url, final String startSeq, final String endSeq) throws SpiHttpConnectionException {
String content = getHttpClient().processHttpContentToString(url);
return content;
}
}
Dann ein kleiner Integrations-Test
package de.spintegration.remoting.http;
import java.util.HashMap;
import java.util.Map;
import de.spi.logging.Clogging;
import de.spintegration.remoting.http.Constants;
import junit.framework.TestCase;
public class FacadeNotesDocsTest extends TestCase {
private FacadeNotesDocs cut = null;
public FacadeNotesDocsTest(String name) {
super(name);
}
protected void setUp() throws Exception {
super.setUp();
Map configRemoteService = new HashMap();
configRemoteService
.put(Constants.KEY_REMOTE_HOST, "geheim.de");
configRemoteService.put(Constants.KEY_REMOTE_PORT, "80");
configRemoteService.put(Constants.KEY_REMOTE_USER, "Axel Janssen");
configRemoteService.put(Constants.KEY_REMOTE_PWD, "xTreme geheim");
Clogging.setTypeLogging(Clogging.LOG4J_LOGGING, null);
cut = new FacadeNotesDocs(configRemoteService);
}
protected void tearDown() throws Exception {
super.tearDown();
}
public final void testScrapeContent() throws SpiHttpConnectionException {
String res = cut.scrapeContent("http://geheim.de/geheim.nsf/f5c880ea35500e97c125682e004e51f3/a4330d3bfe58df5ac125730d004fe3ed?OpenDocument", "", "");
System.out.println(res);
}
}
Läuft.
Mit Authentifizierung an dem Server.
Man kann in die map configRemoteService auch Daten für ReverseProxy Autentifizierung tun.
FacadeBase (was ein Name:
) : kann auch die Webseite als Stream zurückliefern (sinnvoll für xml).
Werd vielleicht echt mal drüber sprechen, daß noch mal zu säubern und über unserem Unternehmensblog im Namen des Greater Good und des Marketings zu openSourcen. Wenn ich nächste Woche Zeit habe, könnte ich das echt mal vorschlagen.
Läßt sich problemlos in Notes Agenten einbinden.
Gruß Axel