[vz-users] NetIO -> Apache2 error 400

dl4huf dl4huf at t-online.de
Tue Jul 4 16:08:34 CEST 2017


Hallo und Danke für die Antworten.

Ja, mit wget schicke ich einen leeren POST. Das scheint aber ok zu sein. 
Die Aufrufe vom NetIO sind genauso. Auch bei den S0-Impulsen.
Mich wundert ja nur, das es vor dem Update lief.
Ich habe also nur die System-Updates (apt-get update && apt-get 
dist-upgrade) laufen lassen.
Und das es auf 2 verschiedenen Apache-Versionen auftritt.

Ein Update des Volkszähler habe ich mit Absicht nicht gemacht, da sich 
dann für die Ansicht die URL (/frontend fällt ja weg) ändert.
Das wird aber noch von anderen Scripten verwendet um z.B. Werte in die 
Homeatic zu bringen.

Hier noch mal ein tcpdump. Zuerst kommt ein S0-Inpuls, der wird 
geschrieben. Und der Temperaturwert eben nicht.
Was mir auffällt: beim fehlerhaften Aufruf fehlt der Header 
"Content-Length". Mehr sehe ich nicht.

14:54:16.647542 IP 192.168.30.120.18360 > 192.168.30.100.80: Flags [P.], 
seq 1:147, ack 1, win 1446, length 146: HTTP: POST 
/middleware.php/data/aa974baa-6b49-53e7-ab74-3e694817954a.json?ts=1499172852000&value=1 
HTTP/1.1
E....L.. at .$....x...dG..P...|-..bP.......POST 
/middleware.php/data/aa974baa-6b49-53e7-ab74-3e694817954a.json?ts=1499172852000&value=1 
HTTP/1.1
Host: alix.fritz.box
*Content-Length: 0*
14:54:16.647864 IP 192.168.30.100.80 > 192.168.30.120.18360: Flags [.], 
ack 147, win 15544, length 0

14:54:17.626917 IP 192.168.30.120.18361 > 192.168.30.100.80: Flags [P.], 
seq 1:130, ack 1, win 1446, length 129: HTTP: POST 
/middleware.php/data/12345678-262a-ac49-2932-03674ba180b7.json?ts=1499172857000&value=37.4 
HTTP/1.1
E....R.. at .$....x...dG..P....&yR.P.......POST 
/middleware.php/data/12345678-262a-ac49-2932-03674ba180b7.json?ts=1499172857000&value=37.4 
HTTP/1.1
Host: alix.fritz.box
14:54:17.627244 IP 192.168.30.100.80 > 192.168.30.120.18361: Flags [.], 
ack 130, win 15544, length 0

Mit etwas googeln habe ich nun diesen Absatz gefunden :

RFC2616 Section 4
For compatibility with HTTP/1.0 applications, HTTP/1.1 requests 
containing a message-body MUST include a valid Content-Length header 
field unless
the server is known to be HTTP/1.1 compliant. If a request contains a 
message-body and a Content-Length is not given,
the server SHOULD respond with 400 (bad request) if it cannot determine 
the length of the message,
or with 411 (length required) if it wishes to insist on receiving a 
valid Content-Length.

Bleibt nur die Frage ob man an dem Apache noch was drehen kann weil es 
ja mal ging.
Ev. ist es nur eine Einstellung.
Mit mod_header (würde eh nur auf dem Apache 2.4 gehen) habe ich 
gespielt, es aber noch nicht hin bekommen.

Also Workaround habe ich mir nun ein Script geschrieben, das per cron 
die Werte abholt und in die DB schreibt.

#/bin/bash
SERVER="http://ubserv.fritz.box"
NETIO"="192.168.30.120"
ID3="65559f5e-262a-ac49-2932-03674ba180b7"
T3=$(echo "1w get Keller" | nc -q 1 $NETIO 2701)
wget -q --post-data="" $SERVER/middleware.php/data/$ID3.json?value=$T3 
-O /dev/null


Gruß Ronald

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20170704/2d3db37f/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dl4huf.vcf
Type: text/x-vcard
Size: 4 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20170704/2d3db37f/attachment.vcf>


More information about the volkszaehler-users mailing list