Avatar billede joller10 Nybegynder
12. marts 2011 - 16:42 Der er 7 kommentarer

https connection login

Jeg har problemer med at logge ind på webstedet: https://fronter.com/eamv/

Jeg har formået at få indtastet mit brugernavn, men password og submit driller. Jeg tror ikke at jeg bruger den rigtige login form.

Dette har jeg prøvet:
BufferedWriter writer = new BufferedWriter( new OutputStreamWriter( connect.getOutputStream() ) );
      writer.write( "username=minBruger&password=minKode&newlang=dk&submit=submit" );
      writer.close();


Jeg har også en reader, hvor jeg får følgende (kun username delen her):

<td colspan="2"><input type="text" class="login" id="username_input" name="username" size="16" value="minBruger" onKeyPress="return submitenter(this,event)">

Så bruger har den indtastet, men jeg kan ikke se om den tager mit password og submitter.
Avatar billede joller10 Nybegynder
12. marts 2011 - 17:35 #1
Ved ikke om følgende hjælper, men efter at jeg har writet så får jeg følgde responsecode & message:

Resp Code:200
Resp Message:OK
Avatar billede arne_v Ekspert
12. marts 2011 - 19:28 #2
Kode 200 betyder success!

Der er ikke mange detaljer i don beskrivelse, men et gæt kunne være at login går godt men at du ikke får sendt session cookie fra login response med i de næste requests.
Avatar billede joller10 Nybegynder
12. marts 2011 - 20:37 #3
Nej jeg tror ikke at jeg bliver logget ind.
Jeg kopirer lige hele min kode ind, hvis det kan være en hjælp. Jeg har faktisk bare fulgt hvad de har gjort her (og ændret det til https): http://www.dreamincode.net/forums/blog/114/entry-2715-login-to-a-website-from-java/


Nå men min kode er:



public class webLogin {
  private URL URLObject;
  private HttpsURLConnection connect;

  public webLogin() throws IOException {
    try {
      URLObject = new URL( "https://fronter.com/eamv/" );
      connect =  (HttpsURLConnection) URLObject.openConnection();
     
      connect.setDoOutput( true );
      connect.setDoInput( true );
      connect.setRequestMethod( "POST" );
    }
    catch ( MalformedURLException e ) {
      e.printStackTrace();
    }

    try {
      // Create a buffered writer to the URLConnection's output stream and write
      // our forms parameters.
      String username = URLEncoder.encode("minBruger");
      String password = URLEncoder.encode("minKode");
      String newLang = URLEncoder.encode("dk");
     
      BufferedWriter writer = new BufferedWriter( new OutputStreamWriter( connect.getOutputStream() ) );
      writer.write( "username="+ username +"&password="+ password +"&newLang="+ newLang +"&submit=submit" );
      writer.close();
     
      System.out.println("Resp Code:"+connect.getResponseCode());
      System.out.println("Resp Message:"+ connect.getResponseMessage());

      // Now establish a buffered reader to read the URLConnection's input
      // stream.
      BufferedReader reader = new BufferedReader( new InputStreamReader( connect.getInputStream() ) );

      String lineRead = "";

      // Read all available lines of data from the URL and print them to screen.
        while ( ( lineRead = reader.readLine() ) != null ) {
          System.out.println( lineRead );
        }

      reader.close();
     
      Runtime.getRuntime().exec( "C:\\Programmer\\Opera\\opera.exe" );
      Thread.sleep( 6000 ); // Venter på at opera åbner
      Runtime.getRuntime().exec( "cmd.exe /c start http://fronter.com/eamv/main.phtml" );
    }
    catch ( Exception ex ) {
      System.out.println( "There was an error reading or writing to the URL: " + ex.getMessage() );
    }

  }

}
Avatar billede joller10 Nybegynder
12. marts 2011 - 20:58 #4
Jeg tror ikke at submit=submit er rigtigt. Kan dog ikke lige gennemskue, hvordan jeg finder ud af login knappens navn / værdi den skal have
Avatar billede arne_v Ekspert
13. marts 2011 - 01:40 #5
Forventer du at den browser du starter med:

Runtime.getRuntime().exec( "cmd.exe /c start http://fronter.com/ (...) );

skal være logget ind??

(det bliver den ikke)
Avatar billede joller10 Nybegynder
13. marts 2011 - 01:50 #6
Ja det var det jeg regnede med ville ske. Jeg tænkte at når min java app starter opera, og mit java app ikke terminere, så ville den være logget ind
Avatar billede arne_v Ekspert
13. marts 2011 - 01:57 #7
Det at en browser er logget ind virker ikke per magi.

Response på login indeholder en cookie som skal sendes med alle efterfølgende requests.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester