# Download HTTP .php-Seite mit Anmeldung



## najjannaj (16. Feb 2006)

Hallo,
Ich habe folgendes Problem.
Ich möchte mir mit Java folgende Datei herunterladen:

http://welt1.travian.de/dorf1.php

das Problem dabei ist nur das das ganze auf Cookies basiert, bzw.. auf einer anmeldung. Wenn ich die seite mit meine Script:


```
package getinfos;

import java.io.*;
import java.net.*;

public class Download {
  public void http(String urlSrc, String fileDest) {
    try {
      URL url = new URL(urlSrc);
      copy(url.openStream(), new FileOutputStream(fileDest));
    }
    catch(IOException e) {
      System.err.println(e);
    }
  }
  public void file(String src, String dest) {
    try {
      copy(new FileInputStream(src), new FileOutputStream(dest));
    }
    catch(IOException e){
      System.err.println(e);
    }
  }
  private void copy(InputStream fis, OutputStream fos) {
    try {
      byte  buffer[] = new byte[0xffff];
      int   nbytes;

      while ((nbytes = fis.read(buffer)) != -1)
        fos.write( buffer, 0, nbytes );
    }
    catch(IOException e) {
      System.err.println(e);
    }
    finally {
      if (fis != null)
        try {
          fis.close();
        } catch (IOException e) {}
      try {
        if (fos != null)
          fos.close();
      } catch (IOException e) {}
    }
  }

  public static void main(String args[])
  {
    Download down = new Download();
    down.http("http://welt1.travian.de/dorf1.php", "dorf1.php");
  }
}
```

dann bekomm ich immer nur die Seite wo man sich anmleden soll:  http://welt1.travian.de/login.php

Wie kann ich das umgehen??


hat jemand eine Idee????

Vielen Dank!
Grüße
Jan Löbel


----------



## despairedNoob (16. Feb 2006)

hi,

das problem mit dem einloggen hab ich auch immer noch. da wird ein forular verwendet, mit der methode "post".
wie man die umgehen kann, weiß ich nicht  ???:L.

ich wollte dich nur wissen lassen, dass du nicht der einzige auf der weiten welt mit diesem mehr oder weniger großem problem bist  :wink:

mfg dNoob


----------



## najjannaj (16. Feb 2006)

Hast du das Problem auch Speziell bei der Webseite?? oder bei einer anderen?


----------



## André B. (16. Feb 2006)

Warum simulierst du nicht einfach einen Browser? Wenn du weisst, wie die Eingabefelder heissen, dann kannst du nen eigenen Request an der Server senden und auch die Antwort selbst parsen.


----------



## najjannaj (17. Feb 2006)

@Ikarus, Danke, aber du müsstest etwas Genauer werden bitte!


----------



## André B. (17. Feb 2006)

Hier findest du die Grundlagen, also wie baust du die Verbindung auf und so: http://www.java-forum.org/de/viewtopic.php?t=6033
Hier steht einiges über HTTP-Requests ect, also wie genau dein Request an den Server aussehen muss: http://www.html-world.de/program/http_ov.php
Du musst also auf dem Zielserver ein Socket auf Port Nr. 80 aufmachen, einen Request senden(steht alles auf der Seite oben) und die Antwort abwarten. Die Antwort wird, genau wie der Request, aus einem Header und dem Body bestehen. Im Body steht das, was der Browser anzeigen soll(HTML-Code). Hoffe das hilft etwas mehr.
MfG Ikarus

EDIT: Ich glaube wenn du POST-Daten senden willst(Formulareingaben, z.B. Benutzer, Passwort usw.) muss du das beim Request als Body mitsenden. Am besten mal ausprobieren :roll:


----------

