[Problem] httpcompress und HTTPMOD (eine bestimmte URL)

Begonnen von betateilchen, 15 Dezember 2017, 13:41:59

Vorheriges Thema - Nächstes Thema

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

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.

betateilchen

ich bin mir immer noch nicht sicher, ob wir Beide über das Gleiche reden. Aber warten wir einfach mal ab.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!