HttpUtils: Response Headerdaten mit HttpUtils_BlockingGet verfügbar?

Begonnen von DS_Starter, 29 Februar 2024, 13:23:58

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo miteinander,

bei HttpUtils_NonblockingGet wird ja ein Hash zurück gegeben der unter anderem die Header Daten der Http Response enthält ($param->{httpheader} - Der gesamte HTTP Header, welcher der Server bei der letzten Antwort zurücklieferte.).
Bei HttpUtils_BlockingGet gibt es diese Rückgabe nicht, oder ich sehe sie einfach nicht.

Ich könnte diese Headerdaten in der Response von HttpUtils_BlockingGet brauchen. Sieht jemand eine mögliche Lösung?

@Rudi, bitte aufklären wenn ich auf dem Holzweg sein sollte.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

rudolfkoenig

ZitatSieht jemand eine mögliche Lösung?
Auf Nonblocking umstellen? :)

Bist Du sicher, dass das beim BlockingGet nicht der Fall ist?
Auf dem ersten Blick sollte das genauso funktionieren, und ich wollte (noch?) nicht mit testen anfangen...

DS_Starter

ZitatAuf Nonblocking umstellen? :)
Ja :-) Aktuell steht die Herausforderung das BlockingGet aus einem BlockingCall heraus zu fahren. Aber ja, Umstellung definitiv möglich.

ZitatBist Du sicher, dass das beim BlockingGet nicht der Fall ist?
Nein. Allerdings gibt lt. https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_BlockingGet die Funktion nur zurück:

$err   und

$data    Die Ergebnisdaten, welche der HTTP-Server zurückgeliefert hat. Die Daten werden als Klartext in Form eines gesamten Strings zurückgegeben.

Ich habe auch mal in den Code reingeschaut, sehe aber bei BlockingGet keine Rückgabe, sondern in Zeile
1137 (Funktion HttpUtils_BlockingGet) ein "delete($hash->{httpheader});". Warum eigentlich?
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

betateilchen

Zitat von: DS_Starter am 29 Februar 2024, 14:58:22Ich habe auch mal in den Code reingeschaut, sehe aber bei BlockingGet keine Rückgabe,

Nein? Bei mir steht in Zeile 1152 der Funktion:

return HttpUtils_ParseAnswer($hash);
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Ich habe zu ungenau formuliert ... Ich sehe keine Rückgabe von "httpheader".
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

rudolfkoenig

fhem> { my $h={ url=>"http://fhem.de/MAINTAINER.txt" };; HttpUtils_BlockingGet($h);; $h->{httpheader} }
HTTP/1.1 200 OK
Date: Thu, 29 Feb 2024 16:41:02 GMT
Server: Apache/2.4.52 (Ubuntu)
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Last-Modified: Thu, 29 Feb 2024 06:45:16 GMT
ETag: "b81e-6127f9a293131-gzip"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 9481
Content-Type: text/plain
Connection: close
fhem>

DS_Starter

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter