von webserver datei anfordern..
chrigu
- java
0 Dominik
hallo zusammen,
ich möchte mit java einen simplen download-manager entwickeln. dazu habe ich bereits etwas code geschrieben, der eine datei von einem webserver anfordert. nur will das nicht.. kann mir da jemand weiterhelfen, beziehungsweise fordere ich die datei richtig an?!
*** code ****
import java.io.*;
import java.net.*;
public class Client {
public Client(String server, int port) {
Socket s;
String line;
String anfrage;
BufferedReader in;
PrintWriter out;
System.out.println("Baue Verbindung auf zu " + server + " auf Port " + port);
try {
s = new Socket(server, port);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
System.out.println("Verbindung wurde aufgebaut!");
anfrage = "GET /";
out.print(anfrage);
System.out.println(anfrage);
while (true) {
line = in.readLine();
if (line != null) {
System.out.println("Server: " + line);
}
}
//s.close();
} catch(UnknownHostException e) {
System.out.println("Der Host ist unbekannt!");
}
catch(IOException e) {
System.out.println("Server-Timeout!");
}
}
public static void main (String args[])
{
String host = args[0];
int port = Integer.parseInt(args[1]);
Client my = new Client(host, port);
}
}
*** code ***
danke & gruss
chrigu
Hallo,
du versuchts HTTP zu implementieren - allerdings falsch.
Richtig(er) wäre:
GET /index.html HTTP/1.0
Host: www.tagesschau.de
(hinweis: der Host natürlich sollte stimmen und am Ende sind ZWEI Newline Zeichen!!)
100% korrekt ist das aber trotzdem noch nicht (aber es klappt mit den meisten Servern), dazu solltest du das RFC über HTTP lesen.
Einfacher wäre es wohl java.net.URLConnection zu benutzen :-)
Dominik