Toon posts:

[Java] Inloggen op een webpagina

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer met een Java programma in te loggen op een website, maar dat lukt niet. De server is Apache Tomcat/4.0.3.

Als ik een verkeerde gebruikersnaam/wachtwoord combinatie opgeef, dan krijg ik een pagina die dat ook aangeeft. Niks aan de hand dus. Maar als ik de GOEDE gebruikersnaam en wachtwoord opgeef, dan krijg ik een FileNotFoundException.

De code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  private void login(){
    String s = new String();
    s = "http://<pagina>/j_security_check";
    String data = "j_username=";
    data += tfUsername.getText();
    data += "&j_password=";
    data += tfPassword.getText();
    byte[] dataarray = data.getBytes();
    try{
    URL url = new URL(s);
    HttpURLConnection uc = (HttpURLConnection) url.openConnection();
    uc.setInstanceFollowRedirects(true);
    uc.setRequestMethod("POST");
    uc.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/CLDC-1.0");
    uc.setRequestProperty("Content-Language", "en-US");
    uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    uc.setDoOutput(true);
    uc.connect();
    OutputStream os = uc.getOutputStream();
    os.write(dataarray);
    os.close();
    InputStream in = uc.getInputStream();
    byte[] bytes = new byte[1024];
    int r = in.read(bytes);
    while (r != -1){
      taLog.append(new String(bytes));
      r = in.read(bytes);
     }
    }
    catch (Exception e){
    System.err.println("Exception: "+e.toString());
    e.printStackTrace();
    }
  }

Het form waarop ik probeer in te loggen:
code:
1
2
3
4
5
6
<form method="post" action="j_security_check">
<input class="formulier_element_algemeen" type="text" name="j_username" id="j_username" size="12">
<input class="formulier_element_algemeen" type="password" name="j_password" id="j_password" size="12">
<input class="formulier_element_knop" type="submit" name="Log In" value="Inloggen">
<input class="formulier_element_knop" type="reset" name="Wissen" value="Opnieuw">
</form>

Ik heb al een beetje hier op GoT gezocht, maar daar kon ik niets vinden. Bij java.sun.com kwam ik eigenlijk alleen deze pagina tegen, maar daar heb ik dus ook niet echt veel aan.
De site gebruikt overigens geen cookies, dus daar kan het ook niet aan liggen.
Heeft iemand een idee wat ik nog zou kunnen proberen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:22
Al eens gedebugged?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Op donderdag 11 juli 2002 15:11 schreef whoami het volgende:
Al eens gedebugged?
Nu wel, en het gaat in een volgend stukje fout:
code:
1
2
3
4
5
6
     Boolean bool = new Boolean(uc.usingProxy());
    taLog.append("Going through proxy? : " + bool.toString()+ "\n");
    taLog.append("URL: "+ s + "\n");
    taLog.append("HTML response code: "+ uc.getResponseCode()+"\n");//<---- Hier gaat het fout.
    taLog.append("Data: \n\n");
    InputStream in = uc.getInputStream();

(dit stukje was ik vergeten erbij te zetten :))

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Bekijk eens gewoon wat voor request er wordt verstuurd en vergelijk dit met een request vanuit een browser. Je ziet dan zo wat er mis is (je kan hiervoor een TCP tunnel gebruiken).

Het kan zijn dat er gewoon een stom foutje in je code zit (ik zie zo niets zitten), maar eigenlijk is de HttpURLConnection zooi van de Java library gewoon sowieso erg matig. Ik gebruik zelf een W3C implementatie die onderdeel uitmaakt van Jigsaw en dit bevalt echt monster-goed. Je kunt het submitten van zo'n form daarin veel fraaier implementeren en misschien dat je daarom ook eerder een oplossing kan vinden.

Zie m'n laatste post in dit topic:

[topic=524817/1/400]

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Thanks, ik denk dat ik daar een stuk verder mee kom.