Problem zu HttpClient!

Sebastian29

Erfahrenes Mitglied
Hi an Alle!

Ich fummel gerade nur ein bisschen mit HttpClient rum! Warum wird bei mir ein Exception rausgeworfen! Ich benutze mit Eclipse und die Java-Version ist 1.4.2! Die wichtige Jar-Datei für HttpClient ( commons-httpclient-3.1.jar ) habe ich auch schon drin!
Welche Werkzeuge fehlen denn noch oder was habe ich überhaupt falsch gemacht?

PHP:
    public static void main(String[] args) throws Exception
    {
        HttpClient client = new HttpClient();           <---- Beim Start knallt die untengenannte Exception
        client.getHostConfiguration().setHost("xxxxxxxx", xxxx, "http");
        client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
        PostMethod postMethod = new PostMethod("/xxxxxxxx/login.php");
        postMethod.addParameter("username", "ABC");
        postMethod.addParameter("password", "XYZ");
        client.executeMethod(postMethod);
        System.out.println(postMethod.getResponseBodyAsString());
    }

PHP:
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
	at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66)
	at Beispiel1.CommonsHttpClientExample.main(CommonsHttpClientExample.java:12)

Gruß
Sebastian29
 
Ich würde einfach mal behaupten, dass du ein Jar-File nicht eingebunden hast.

Bei dem Jar-File, dass du eingebunden hast, sind sicherlich noch andere Jars mit ausgeliefert worden. Meistens in einem Ordner names lib. Schau da mal nach und binde diese Jars auch noch ein.

MFG

Sascha
 
Nein, in dem Zip liegt im Ordner bin ein commons-http-xxx.jar. Das musst du in den Classpath aufnehmen (hast du ja laut deiner Aussage schon). Nun hat das Projekt aber noch eine Dependency zu commons-logging. Diese Dependencies liegen in den Zips meist in einem Ordner lib. D.h da sollte ein commons-logging-xxx.jar liegen - das muss auch noch in den Classpath.

REINHAUN!
 
Hi an alle!

Sorry, dass ich mich jetzt melde! Also, es klappt soweit ganz gut!

Eine Frage habe ich noch zu HttpClient:

Sobald ich mit der HttpClient - Verbindung zum WebServer hergestellt habe, möchte ich dort gerne auf den Ordner zugreifen, wo dort PDF-Dateien drin sind, die ich gerne auslesen möchte.
Wie kann ich dann auf den Ordner zugreifen, da ich auch gleichzeitig prüfen muss, ob ich immer noch eingeloggt bin oder so. Um die PDF-Dateien auszulesen, ist für mich kein Problem!

Ich weiss nur nicht, mit welchem Befehl aus dem Werkzeug von HttpClient oder allgemein von Apache ich nehmen kann, um den Ordner im WebServer zu öffnen!

Danke im voraus!

Gruß
Sebastian
 
Hi Oli!

Ja, habe Http wohl verstanden! Mit dem "Ordner öffnen" habe ich wohl falsch ausgedrückt! Damit meine ich, dass ich gerne in diesem Ordner irgendeine pdf-Datei downloaden möchte!

Also, irdgendwie mit url.getOutputStream() oder so!

Gruß
Sebastian29
 
Also wenn du du die URL des PDF kennst, dann anfragen (Request) und antwort (Response) erhalten... Wenn du Glück hast, antwortet der HTTP-Server mit deinem gewünschten PDF.

Du hast doch schon mit dem HTTP-Client einen Request abgesetzt (beim Login). Wo liegt jetzt das weitere Problem?!
 
Hi Billie!

Das weitere Problem ist, ich weiss nur, wo die PDF-Dateien liegen, aber wie die PDF-Dateien heissen, die können beliebig sein, da der Dateiname der PDF-Datei mit Zeit und Datum gespeichert wird.

Zum Beispiel:

URL-Path = http://www.test.de/pdf/
Datei-Path = 20080605_153600.pdf

Am liebsten möchte ich gerne, dass man nach dem Download mit JList alle PDF-Dateien einfügen kann! Dann kann ich nach dem Auswählen eine bestimmte PDF-Datei, wie du mir gerade deinen Tipp vorgeschlagen hast, öffnen und anzeigen!

Gruß
Sebastian29
 
Hm, naja, deinen Fragen nach zu urteilen gibt es da schon ein paar erhebliche Wissenslücken.

Bei HTTP wird jede Resource durch eine URL identifiziert. Um diese Resourcen zu konsumieren musst du diese URLs kennen. HTTP ist kein Dateisystem. D.h. http://foo.com/bar/ aufrufen und alle Unterdokumente bekommen geht zwar (du müsstest den Directoryindex auf dem Webserver aktivieren und das Responsedokument parsen) ist aber unschön.

Die einzig wirklich saubere lösung wäre z.B. unter http://foo.com/bar/pdfs(.txt/.xml) eine Datei mit definiertem Format zu hinterlegen, die die konkreten URLs oder zumindest die Namen enthält.

Gruß
Ollie
 

Neue Beiträge

Zurück