• 29.08.2025, 03:56
  • S’inscrire
  • Connexion
  • Vous n’êtes pas connecté.

 

Bonjour, visiteur, bienvenue sur les forums Aqua Computer Forum. Si c’est votre première visite, nous vous invitons à consulter l’Aide. Elle vous expliquera le fonctionnement de cette page. Pour avoir accès à toutes les fonctionnalités, vous devez vous inscrire. Pour cela, veuillez utiliser le formulaire d’enregistrement, ou bien lisez plus d’informations sur la procédure d’enregistrement. Si vous êtes déjà enregistré, veuillez vous connecter.

Anisachse

God

HTTP Anfage

mardi 27 septembre 2005, 12:26

hi ihr,
weiß einer von euch wie ein Browser POST daten übermittelt?!

bin gerade dabei nen webchat zu bauen und hab probleme post daten einzulesen.

POST /chat HTTP/1.1
Host: localhost:3300
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: de-de
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:3300/
Content-Type: application/x-www-form-urlencoded
Content-Length: 19

nick=Ani&col=00fecd

das wäre eine anfrage. mein problem ist aber das sind meine schleife die die sachen einliesst hiernach aufhängt:
POST /chat HTTP/1.1
Host: localhost:3300
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8b4) Gecko/20050908 Firefox/1.4
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: de-de
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost:3300/
Content-Type: application/x-www-form-urlencoded
Content-Length: 19



^^ danach passiert nichts mehr. weder der browser noch der server tun irgendwas. der server wartet das der browser die letzte zeile sendet und der browser wartet anscheind das der server antwortet oO

edit:
ne frage sollte man auch stellen :-[
was zum teufel braucht der browser damit er die post daten sendet?

Y0Gi

God

Re: HTTP Anfage

mardi 27 septembre 2005, 23:57

hast du ne leerzeile am ende? und benutzt du auch die richtigen zeilenumbrüche (\n vs. \r\n vs. \015\012...)?

ansonsten hab ich bisher POSTs gut hinbekommen, so z.b. ja beim ac-forum-poll-system.

für firefox gibt es übrigens die extension 'Live HTTP Headers', die dir vielleicht weiterhilft.

Anisachse

God

Re: HTTP Anfage

mercredi 28 septembre 2005, 10:37

also ich les das alles mit nem Java BuffredReader ein. der liesst die zeilen umbrüche automatisch.

ich brauch nur in.readLine(); machen und er leisst ne Zeile.

das problem ist das er die Leerzeile zwischen dem Header und dem POST Feld noch liesst, aber danach garnichts mehr macht. es sieht so aus als warte der Browser darauf das der Server ihm was sendet. Was aber nicht geht weil der Browser halt das POST Feld noch nicht geschickt hat. Ohne das wäre es ziemlich sinnfrei was zu sendet da das server nicht wissen kann was der browser will.

Y0Gi

God

Re: HTTP Anfage

mercredi 28 septembre 2005, 22:44

zeilenumbrüche sind nicht gleich zeilenumbrüche :)
wenn in einer programmiersprache \n verwendet wird, dann wird das je nach sprache direkt in das umgesetzt, was das betriebssystem verlangt (unix: \n, windows: \r\n; mac: \r) - das heißt aber nicht, dass das über plattformübergreifende socketverbindungen sinn macht! da heißt es sich ans protokoll halten. also mal mitloggen und gucken, sonst eben direkt über die ascii-werte die zeichen definieren.

hau mal deinen code hier rein, vielleicht geht in der schleife ja was schief.

Anisachse

God

Re: HTTP Anfage

jeudi 29 septembre 2005, 17:06

Meine Scheife:
String sin = "";
String test = "";
int i = 9;
boolean post = false;
while(i > 0) {
if(test.startsWith("POST")) {
i += 5;
post = true;
}

test = in.readLine();
System.out.println("gelesen: "+test);
sin = sin+test+"#br#";
i--;
if(test.startsWith("Connecting"))
if(post)
i = 5;
else
i = 1;
}

in ist ein Objekt der Klasse BufferedReader.

IE und Firefox senden als letzte zeile Connection: keep-alive; wenn keine post anfrage kam

daher das letzte if was testen ob Connection gesendet wurde. wenn die erste zeile nicht mit POST anfing soll die letzte leerzeile noch gelesen werden und danach die anfrage geparst werden.
fing die anfrage mit post an komm noch 2 zeilen. einmal die leerzeile und die zeile mit den "variablen" die post überträgt. und genau da ist mein problem.

die letzte zeile wird nicht gesendet