FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: StefanStrobel am 30 November 2014, 12:19:37

Titel: HttpUtils redirects und cookies für HTTPMOD
Beitrag von: StefanStrobel am 30 November 2014, 12:19:37
Hallo,

für das neue HTTPMOD, in dem ich auch Session IDs und Form basierte Logins unterstützen möchte, benötige ich Zugriff auf die Cookies, die in der HTTP Response im Header gesetzt werden. Leider geben die HttpUtils die Header bisher nicht weiter. Zudem reagiert eine Pellet-Heizung, die ich mir gerade ansehe, auf die Login-Daten mit einem Redirect, in dem die Cookies gesetzt werden.
(http://forum.fhem.de/index.php/topic,28844.0.html)

Damit HTTPMOD mit solchen Dingen klar kommt, möchte ich den angefügten Patch für HttpUtils vorschlagen. Er fügt drei optionale Parameter ein:

1) $hash->{ignoreredirects} verhindert dass HttpUtils den Redirects folgt.
2) $hash->{returnheaders} weist HttpUtils an, die Header in der Response nicht wegzuwerfen
3) $hash->{logdevice} wird von HttpUtils auf $hash->{NAME} gesetzt, damit man das Logging der HttpUtils über HTTPMOD steuern kann.

entsprechend habe ich alle Log3 Aufrufe so geändert, dass sie logdevice verwenden (wo es möglich war)

Gruss
   Stefan

EDIT: diff aktualisiert - war noch ein Fehler drin
Titel: Antw:HttpUtils redirects und cookies für HTTPMOD
Beitrag von: rudolfkoenig am 30 November 2014, 14:15:53
Habs (mehr oder weniger) uebernommen:
- ignoreredirects: unveraendert
- returnheaders: gibts nicht, dafuer aber wird der Header in $hash->{HTTPHEADER} immer zurueckgeliefert.
- logdevice: gibts nicht, dafuer aber wird (wie sonst ueblich) $hash->{NAME} verwendet.
Titel: Antw:HttpUtils redirects und cookies für HTTPMOD
Beitrag von: StefanStrobel am 30 November 2014, 14:52:26
Das war schnell, Vielen Dank!

Ich hab die HTTPMOD-Beta entsprechend angepasst (http://forum.fhem.de/index.php/topic,29471.0.html)

Gruss
   Stefan
Titel: Antw:HttpUtils redirects und cookies für HTTPMOD
Beitrag von: Markus Bloch am 01 Dezember 2014, 11:40:10
Hallo zusammen,

ich hätt da ein paar Fragen zu.

Den ersten Punkt 1) $hash->{ignoreredirects} finde ich etwas unglücklich umgesetzt. Sollte dieser Parameter auf 1 stehen, so wäre es meiner Ansicht nach dennoch angebracht, die neue URL aus dem Location-Header im Hash unter $hash->{url} bereitzustellen. Sonst muss man sich diese ja jedesmal aus dem Header extrahieren.

Desweiteren, warum ist der Hash-Wert "HTTPHEADER" jetzt plötzlich upper case anstatt lower case wie alle anderen?

Viele Grüße

Markus
Titel: Antw:HttpUtils redirects und cookies für HTTPMOD
Beitrag von: rudolfkoenig am 05 Dezember 2014, 22:23:09
ZitatDen ersten Punkt 1) $hash->{ignoreredirects} finde ich etwas unglücklich umgesetzt. Sollte dieser Parameter auf 1 stehen, so wäre es meiner Ansicht nach dennoch angebracht, die neue URL aus dem Location-Header im Hash unter $hash->{url} bereitzustellen. Sonst muss man sich diese ja jedesmal aus dem Header extrahieren.

Naja, HttpUtils hat die neue URL in diesem Fall auch noch nicht aus dem Header rausgelesen, d.h. da wird nicht viel gespart.
Und man kann es mit einem Regexp auch leicht aus $hash->{HTTPHEADER} extrahieren. Diese Moeglichkeit gab es bis vor kurzem gar nicht, und wurde trotzdem nicht vermisst.

ZitatDesweiteren, warum ist der Hash-Wert "HTTPHEADER" jetzt plötzlich upper case anstatt lower case wie alle anderen?
Ist meiner Unachtsamkeit geschuldet. Falls Stefan es auch klein haben will, kann ich es noch aendern.
Titel: Antw:HttpUtils redirects und cookies für HTTPMOD
Beitrag von: StefanStrobel am 06 Dezember 2014, 13:35:29
Hallo,

ich möchte einer konsistenten Schreibweise nicht im Weg stehen und habe es in HTTPMOD jetzt so geändert, dass erst mal beide Schreibweisen für die Header-Variable verwendet werden.
(http://forum.fhem.de/index.php/topic,29471.msg222416.html#msg222416)

Da bisher keine Beschwerden von den Testern kamen, tendiere ich übrigens dazu, die neue Version von HTTPMOD demnächst einzuchecken.

Gruss
   Stefan
Titel: Antw:HttpUtils redirects und cookies für HTTPMOD
Beitrag von: rudolfkoenig am 07 Dezember 2014, 12:50:05
Habe HttpUtils.pm geaendert und eingecheckt (jetzt mit httpheader)
Titel: Antw:HttpUtils redirects und cookies für HTTPMOD
Beitrag von: Markus Bloch am 07 Dezember 2014, 13:02:22
Vielen Dank, werde ich im Wiki entsprechend nachpflegen, dann ist es wieder einheitlich.

Gruß

Markus