[vz-dev] Temperatur / 1wire / httplog - GET / Post ?

Thorben Thuermer r00t at constancy.org
Thu Nov 10 22:58:07 CET 2011


On Thu, 10 Nov 2011 21:53:18 +0100
"Klaus Reichenecker" <kr at kr123.de> wrote:
> so langsam schaue ich durch:
> 
> bei
> curl -d "" 
> http://demo.volkszaehler.org/middleware.php/data/95d98700-07da-11e1-bb04-0fe73f97b4c6.json?value=24,9
> wird
>> POST 
>> /middleware.php/data/95d98700-07da-11e1-bb04-0fe73f97b4c6.json?value=24,9 
>> HTTP/1.1\r\n
> geschickt
> aber VZ / httplog schickt nur:
>> POST 
>> /middleware.php/data/95d98700-07da-11e1-bb04-0fe73f97b4c6.json?value=23.8\n 
> das HTTP/1.1\r fehlt

mal ganz nebenbei: ist es der middleware egal ob das dezimal-trennzeichen
punkt oder komma ist?!

> in HTTPLOG.c steht:
[...]
> static const char PROGMEM get_string_head[] =
> "POST " CONF_HTTPLOG_PATH ;
[...]
> static const char PROGMEM get_string_foot[] =
> " HTTP/1.1\n"
> "Host: " CONF_HTTPLOG_SERVICE "\r\n\r\nstatic const char PROGMEM";
> 
> warum werden die letzten beiden Zeilen nicht mit angehängt`?

am wahrscheinlichsten ist, dass die schon angehaengt werden, aber hinter dem
value noch ein \n steht, das da nicht hingehoert...
das solltest du in wireshark dann im rest des pakets sehen koennen...
(rutscht dann in die erste header-zeile.)

> Ich habe nur Basic-Kenntnisse aus C64-Zeiten, aber nach meinem Verständniss 
> müsste es passen ?
> ( Ich habe bei Include Unix Timestamp und Include uuid nichts angegeben)
> fehlt evtl. hinter " HTTP/1.1\n" ein Semikolon ?

das ist so richtig... konkatenation von stringkonstanten geht in C durch
hintereinanderschreiben ohne operator.
ansonsten wuerde das auch einen fehler beim kompilieren geben und nicht
zur laufzeit.
ausserdem werden da nur konstanten im programmspeicher 
("static const char PROGMEM") definiert die dann spaeter zu dem request
zusammengebaut werden. das dabei eine vergessen wird ist unwahrscheinlich.
siehe die vermutung zum \n oben.

> Grüße
> Klaus

- T.


More information about the volkszaehler-dev mailing list