html login und apache client

Status
Nicht offen für weitere Antworten.

The Hit-Man

Mitglied
Ich programmiere gerade dieses hier nach: Post Problem, da ich auch eine HTML Seite nach einem Login auslesen will.

Mein Code sieht so weit so aus:
Code:
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
.....
    public void getPage() {
        HttpClient client = new HttpClient();

Allerdings gibt es beim Erstellen, des client schon Fehlermeldungen:
Code:
init:
deps-jar:
Warning: html_parser\OlgTools.java modified in the future.
Compiling 1 source file to E:\java\html_parser\build\classes
compile:
run:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
        at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66)
        at html_parser.OlgTools.getPage(OlgTools.java:41)
        at html_parser.Main.main(Main.java:19)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        ... 3 more
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

Weiß jemand von Euch, woran das liegen könnte? Es sieht so aus, als würde die Apache Klasse ärger machen. Hatte mir die 3.1 Version besorgt.
 
M

maki

Gast
Hast du die commons-logging jar zum Classpath/Buildpath hinzugefügt?

Löst zwar dein Problem nicht, aber imho ist log4j das beste Logging Framework ;) (SCNR)
 

The Hit-Man

Mitglied
Mit der 3.1, meinte ich dieses hier hc.apache.org/downloads.cgi
Seite dem ich dieses logging von Dir mit im Verzeichnis habe, meckert er beim Erstellen, des Programms auch nicht mehr. Ich werde mal weiter testen. Falls noch was sein sollte, melde ich mich kurz.

Danke

EDIT:
jetzt meckert er bei diesem Befehl :(

Code:
PostMethod method = new PostMethod("www.freenet.de");

und zwar dieses:

Code:
init:
deps-jar:
Warning: html_parser\OlgTools.java modified in the future.
Compiling 1 source file to E:\java\html_parser\build\classes
compile:
run:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException
        at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220)
        at org.apache.commons.httpclient.methods.ExpectContinueMethod.<init>(ExpectContinueMethod.java:93)
        at org.apache.commons.httpclient.methods.EntityEnclosingMethod.<init>(EntityEnclosingMethod.java:119)
        at org.apache.commons.httpclient.methods.PostMethod.<init>(PostMethod.java:106)
        at html_parser.OlgTools.getPage(OlgTools.java:42)
        at html_parser.Main.main(Main.java:19)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        ... 6 more
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
 
M

maki

Gast
Du brauchst die commons codec jar auch noch (http://commons.apache.org/codec/) und bestimmt noch einige mehr.

Seite dem ich dieses logging von Dir mit im Verzeichnis habe,
Was heisst das? Hast du die jars nur in den cp kopiert?

Solltest schon wissen was der Classpath ist und wie man ihn setzt bevort du anfängst Programme zu schreiben.

Um welche IDE geht es denn jetzt?
 
M

maki

Gast
>> warum sind denn das alles Einzelteile?

Ist aber nicht ernst gemeint, oder???
 

The Hit-Man

Mitglied
Jain ;) ein wenig natürlich schon. War eher der Python Freak. Also, was Methoden, Klassen, Überladungen sind, alles kein Thema. Muß mich nur nen bischen reindenken, dann wird das schon. Mein Projekt steht ja schon längt in Python/wxPython. Kriege es aber nicht gebacken, ne stand alone .exe daraus zu bekommen. Des weiteren, sollte es OS unabhängig sein, aus diesem Grund dann erst mal Java. Muß mich für meine zweite Ausbildung eh mit Java, C, C++ beschäftigen. Ähm, ja, das Buch kenne ich ;)
 

The Hit-Man

Mitglied
ich habe dieses Beispiel ausprobiert und es funktioniert so weit ich das beurteilen kann:

Code:
    static final String LOGON_SITE = "www.onlineglueck.de";
    static final int LOGON_PORT = 80;

    public void getPageGet() throws IOException {
        HttpClient client = new HttpClient();
        client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT, "http");
        client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

        GetMethod authget = new GetMethod("/olg/index.php");

        client.executeMethod(authget);
        System.out.println("Login form get: " + authget.getStatusLine().toString());
        authget.releaseConnection();
        CookieSpec cookiespec = CookiePolicy.getDefaultSpec();
        Cookie[] initcookies = cookiespec.match(
                LOGON_SITE, LOGON_PORT, "/", false, client.getState().getCookies());
        if (initcookies.length == 0) {
            System.out.println("None");
        } else {
            for (int i = 0; i < initcookies.length; i++) {
                System.out.println("- " + initcookies[i].toString());
            }
        }
        PostMethod authpost = new PostMethod("/olg/index.php");
        // Prepare login parameters
        NameValuePair action = new NameValuePair("action", "login");
        NameValuePair url = new NameValuePair("url", "/index.php");
        NameValuePair userid = new NameValuePair("nickname", "mein_username");
        NameValuePair password = new NameValuePair("password", "mein_password");
        authpost.setRequestBody(
                new NameValuePair[]{action, url, userid, password});

        client.executeMethod(authpost);
        System.out.println("Login form post: " + authpost.getStatusLine().toString());
        // release any connection resources used by the method
        authpost.releaseConnection();
        // See if we got any cookies
        // The only way of telling whether logon succeeded is 
        // by finding a session cookie
        Cookie[] logoncookies = cookiespec.match(
                LOGON_SITE, LOGON_PORT, "/", false, client.getState().getCookies());
        System.out.println("Logon cookies:");
        if (logoncookies.length == 0) {
            System.out.println("None");
        } else {
            for (int i = 0; i < logoncookies.length; i++) {
                System.out.println("- " + logoncookies[i].toString());
            }
        }
        // Usually a successful form-based login results in a redicrect to 
        // another url
        int statuscode = authpost.getStatusCode();
        if ((statuscode == HttpStatus.SC_MOVED_TEMPORARILY) ||
                (statuscode == HttpStatus.SC_MOVED_PERMANENTLY) ||
                (statuscode == HttpStatus.SC_SEE_OTHER) ||
                (statuscode == HttpStatus.SC_TEMPORARY_REDIRECT)) {
            Header header = authpost.getResponseHeader("location");
            if (header != null) {
                String newuri = header.getValue();
                if ((newuri == null) || (newuri.equals(""))) {
                    newuri = "/";
                }
                System.out.println("Redirect target: " + newuri);
                GetMethod redirect = new GetMethod(newuri);

                client.executeMethod(redirect);
                //hier Seite auslesen
                
                System.out.println("Redirect: " + redirect.getStatusLine().toString());
                // release any connection resources used by the method
                redirect.releaseConnection();
            } else {
                System.out.println("Invalid redirect");
                System.exit(1);
            }
        }
    }

Ich bekomme auch coockies zurück. Doch wie kann ich die Seite ( welche Methode ), auslesen und zum Beispiel auf Platte speichern??? Müste ich nicht irgendwie nen RESULT bekommen?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M In einer HTML Tabelle positionieren Web Tier 4
I HTML nach Image Web Tier 1
S Einträge aus Datenbank einzeln darstellen (JSP, JAVA, HTML) Web Tier 9
J Welches Programm visualisiert mir einen html-Dom als Baumdiagram? Web Tier 5
G HTML Fragment in Bean erzeugen? Web Tier 1
E Wie kann ich dynamische HTML- Tabellen(-spalten) mit JSP aus SELECT-Anweisung erstellen? Web Tier 2
T Spring HTML Tabellen sortieren, filtern, Attribute ausblenden Web Tier 3
D Servlet Servlet Weiterleitung static html Web Tier 5
K Wicket: Pfad zu HTML Dateien ändern/erweitern Web Tier 2
S JSP STRUCT Elemente in HTML Tabelle Web Tier 8
L JSF, no tag was defined for name: html Web Tier 5
S JSP Erzeugten JSP HTML-Quelltext in html-Datei speichern Web Tier 4
V JSF JSF und Standard HTML-Tags Web Tier 7
J JSF Verwirrung: JSF und generiertes HTML sieht 'cryptisch' aus Web Tier 18
S Mit GWT ein Widget/Komponente/HTML-Element im Backend erzeugen? Web Tier 4
S JSP HTML+CSS in JSP einbinden Web Tier 4
T Richtige Aussgabe in eine HTML mit JSF Web Tier 2
S Auswahl eine Zeile von einer HTML Tabelle im Servlet Web Tier 4
S HTML Output verschleiern Web Tier 6
B statische Html Seite als response erhalten (Servlet) Web Tier 3
P Problem mit HTML.Tag.OPTION Web Tier 3
J response HTML verwenden Web Tier 2
S HTML Seite als PDF Web Tier 6
F HTML select auslesen Web Tier 3
D Formular als Applet oder HTML Web Tier 6
E Suche Wiki Markup -> HTML rendering engine Web Tier 7
M html + jquery(javascript-framework): elegantes und flexibles Formulardesign Web Tier 5
D <html:select> bzw. <html:option> - Methode auslösen ? Web Tier 2
T JBoss + Servlet + HTML Fileupload + Encoding Web Tier 1
J Wie realisiert man einen HTML-Chat? Web Tier 3
K JSF und HTML-Code Web Tier 2
O JSP: HTML tags werden vor struts tags angezeigt Web Tier 3
F Java Applets in html einbinden Web Tier 10
ff html:text aus mapped properties rendern Web Tier 2
? XML Parsen - IDs auslesen - HTML generieren Web Tier 11
A Struts - JSP - HTML - Visualisierungsproblem Web Tier 3
S Probleme mit den Nav_rules und HTML code Web Tier 2
T HTML Darstellungsproblem Web Tier 3
H Java Servlet und HTML Form Web Tier 3
G MyFaces: HTML Ausgabe Code steuern Web Tier 8
B Struts: html:checkbox Web Tier 2
platofan23 Java Login Überprüfung ohne Srciptlets in der JSP Web Tier 4
F Formular nach erfolgreichem Login ausblenden Web Tier 0
S JSF Login mit redirect Web Tier 1
J JSF Login/Registrieren Feature mit JBoss AS 7.1.0 Web Tier 0
D Java EE Servlet login Problem Web Tier 1
Q JSF bei Session-Timeout Weiterleitung auf spezielle Login-Seite Web Tier 15
W JSF Login funktioniert nicht Web Tier 12
W JSF Komisches Verhalten nach Login per Realm Web Tier 4
M JSF Login realisieren Web Tier 4
T JSF Login? Web Tier 2
E Login mit JSF 2.0 und Glassfish 3.1.1 (in Netbeans 7.0.1) Web Tier 2
J JSF Mit Enter ein Login bestätigen? Web Tier 3
B JSF Login authentication schaffe ich nicht Web Tier 2
P JSF Login per Ajax validieren. Was ist der Beste Weg? Web Tier 4
T JSP Session Login - Sicherheit Web Tier 4
D JSF 2.0 Login Web Tier 4
I Wie bekomme ich Angaben zum letzten Login Web Tier 2
K JSP Login Code Web Tier 14
G Probleme mit Ajax Login (jsp) Web Tier 5
D Login wie realisieren? Web Tier 12
J Problem mit Login Web Tier 4
G JSF h:form Tag Login über j_security_check und weiterleiten Web Tier 5
console MVC: Servletweiterleitung umgeht Login Authentifizierung Web Tier 2
D JSF+Weiterleitung zu einer Login-Page Web Tier 1
L JSP Tomcat Login Web Tier 6
G WebSeite hinter einem Login auslesen Web Tier 8
D Login mit Filter (JSP/JSF) Web Tier 3
I vTiger Astersik Connector: NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet Web Tier 0
I SessionContext CDI und Apache Shiro Web Tier 0
B JSF Apache Shiro mit JSF 2 Web Tier 3
Spin Shiro Apache Security Framework Web Tier 3
H Servlet Apache Geronimo: Servlet nicht erreichbar Web Tier 2
N JSP org.apache.tomcat cannot be resolved to a type InstanceManager cannot be resolved to a type Web Tier 4
F.S.WhiTeY JSF:org.apache.jasper.JasperException Problem Web Tier 2
F ADF Faces & Apache Trinidad Web Tier 5
M Apache MyFaces ExtVal Web Tier 5
C Apache-Tomcat Web Tier 13

Ähnliche Java Themen

Neue Themen


Oben