Hallo,
ich habe einen kleinen Webserver in Java erstellt. Dabei werden die durch einen Client gesendeten Daten aus einer Socket-Verbindung gelesen.
Für die GET-Methode funktioniert das auch sehr gut.
Allerdings habe ich Probleme, die Daten einer POST-Anweisung zu lesen. Ich fülle ein HTML-Formular aus und schicke es mit der Methode POST an den Server - gut.
Die Header-Daten kann ich auch lesen - die verwendete Methode, Dateiname, HTTP-Protokoll, Content-Type, User-Agent etc. lassen sich einwandfrei ermitteln. Die Daten der z.B. Eingabefelder bekomme ich nicht - hab' mal 'nen Codeschnipsel gepostet - wo liegt der Fehler?
Ich danke schon mal für Hilfe - komme nämlich nicht mehr weiter :-)
InputStream is = null;
BufferedReader br = null;
try {
is = socket.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
}
catch (IOException e) {
}
String requestLine = "";
try {
requestLine = br.readLine();
}
catch (IOException e) {
}
String headerLines = requestLine + "\r\n";
String headerLine;
try {
while ((headerLine = br.readLine()) != null && headerLine.length() > 0)
headerLines += headerLine + "\r\n";
}
catch (IOException e) {
}
StringTokenizer tokens = new StringTokenizer(requestLine, " ");
String requestMethod = tokens.nextToken();
String fileName = tokens.nextToken();
String httpProtocol = tokens.nextToken();
if (requestMethod.equals("POST")) {
try {
byte[] bytes = new byte[2];
DataInputStream dis = new DataInputStream(is);
dis.read(bytes);
dis.close();
resultString = "" + (char)bytes[0] + (char)bytes[1];
}
catch (IOException e) {
}
}