Archief - [Java] Inloggen op webform

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Cycloon

Legacy Member
Ik wil wat info scrapen van een website waar je eerst moet inloggen voor je de info kan bekijken. Nu moet de gebruiker natuurlijk wel eerst ingelogd zijn. Het zou makkelijk geweest zijn om gewoon een HTTP POST bericht te verzenden naar die website, maar de login voorloopt via HTTPS wat het weeral lastig maakt in Java omdat voor HTTPS nauwelijks ondersteuning is (wat ik na wat google'n had gevonden bleek niet te werken).

Nu zat ik te denken of het niet mogelijk is om de gebruiker zelf te laten inloggen op de webpagina (in een browser of java window) en dan die cookie daarvan te gebruiken? Ik heb wat zitten google'n maar kom enkel pagina's tegen die handelen over cookies & servlets, daar ben ik niks mee natuurlijk :sad:.

Iemand die toevallig al hetzelfde probleem is tegengekomen?

Eventueel is een oplossing in C# of VB.NET ook welkom :)

passero

Legacy Member
ik denk dat https normaal geen probleem mag geven in java. IK heb indertijd (enkele jaren terug) voor de fun een java msn client geschreven en die gebruikt ook https om in te loggen en dat is me toch perfect gelukt. Ik weet niet of ik die code nog heb maar kzal eens zoeken en dan de loginprocedure met https eens posten.

Yngwie

Legacy Member
Met org.apache.http.impl.client.DefaultHttpClient moet het wel lukken normaal. Ik gebruik die class om in men Android app een met https + basic authentication beveiligde service aan te spreken.

een snelle paste uit mijn code

Code:
        private String getResponseFromUrl(String url) {
                try {
                        DefaultHttpClient httpclient = new DefaultHttpClient();
                        httpclient.getCredentialsProvider().setCredentials(
                                        new AuthScope(null, -1),
                                        new UsernamePasswordCredentials(username + ":" + password));
                        HttpGet httpget = new HttpGet(url);
                        HttpResponse response = httpclient.execute(httpget);

                        if (response.getEntity() != null) {
                                BufferedReader reader = new BufferedReader(
                                                new InputStreamReader(response.getEntity().getContent()));
                                StringBuilder sb = new StringBuilder();

                                String line = null;
                                while ((line = reader.readLine()) != null) {
                                        sb.append(line);
                                }
                                reader.close();

                                return sb.toString();
                        }

                        return "error";
                } catch (IOException e) {
                        throw new RuntimeException(e);
                }
        }

Cycloon

Legacy Member
HttpResponse wordt hier niet herkend, zeker omdat ik geen servlets aan het maken ben ofzo maar een gewone desktop app.

Cycloon

Legacy Member
Code:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

Die logfactory vind ik nergens, ik heb nochtans alle binaries van HttpComponents - HttpComponents Downloads gedownload.

Wel handige website die jar search engine, die ga ik onthouden :)

Edit: Toch gevonden na wat zoeken, nu wat verder mee doen en zien waar ik uitkom.

Cycloon

Legacy Member
Ja en ik moest daarna ook nog de commons.codec hebben (waarom ze niet gewoon 1 totaalpakket leveren is mij niet duidelijk, je hebt ze toch samen nodig).

Maar ik ben er nog steeds niet in geslaagd om in te loggen, nochtans heb ik alle velden correct ingevuld (ook enkele verborgen velden). Ik heb zelf andere code geprobeerd die gebruik maakt van die httpclient, maar niks helpt. Ik denk dat ik het gewoon maar laat varen (waarschijnlijk hebben ze nog ergens een beveiliging ofzo, geen idee).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan