Wenn ich die URL
http://mobile.bsh.de/cgi-bin/gezeiten/was_mobil.pl?ort=DE__508P&zone=Gesetzliche+Zeit&niveau=KN
in einem HTTPMOD device verwende, funktioniert das nur, wenn das globale (neue) Attribut httpcompress auf 0 gestellt ist. Ist die Kompression aktiviert, wird $hash-{buf} des HTTPMOD devices nicht gefüllt.
Keine Ahnung, ob die Ursache das Attribut oder das Modul ist.
Kurz: Dass $hash->{buf} zu sehen war, ist ein Bug, und das habe ich gefixt.
Lang:
Wenn ich in fhem "attr global verbose 5" und
{ HttpUtils_NonblockingGet({ url=>"http://mobile.bsh.de/cgi-bin/gezeiten/was_mobil.pl?ort=DE__508P&zone=Gesetzliche+Zeit&niveau=KN",callback=>sub($$$){ Log 1,"ERR:$_[1] DATA:".$_[2] } }) }
eingebe, dann kriege ich:
Zitat2017.12.16 15:09:54.540 5: HttpUtils response header:
HTTP/1.1 200 OK
Date: Sat, 16 Dec 2017 14:09:54 GMT
Server: Apache/2.4.10 (Debian)
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 1153
Connection: close
Content-Type: text/html
2017.12.16 15:09:54.540 1: ERR: DATA:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Gezeitenvorausberechnung mobil</title>
...
</body>
</html>
d.h. sinnvolle/komplette Daten.
ZitatIst die Kompression aktiviert, wird $hash-{buf} des HTTPMOD devices nicht gefüllt.
$hash->{buf} ist eine HttpUtils-interne Variable, und $hash->{buf} wird (soweit ich es sehe) von HTTPMOD nicht verwendet. Die Daten werden per Definition als Callback-Argument zurueckgeliefert.
$hash->{buf} wurde bei fehlenden Content-Length im Header nicht geloescht, und das ist ein Bug.
Habe es jetzt gefixt.
ich bin mir immer noch nicht sicher, ob wir Beide über das Gleiche reden. Aber warten wir einfach mal ab.