FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: DS_Starter am 29 Februar 2024, 13:23:58

Titel: HttpUtils: Response Headerdaten mit HttpUtils_BlockingGet verfügbar?
Beitrag von: DS_Starter am 29 Februar 2024, 13:23:58
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
Titel: Aw: HttpUtils: Response Headerdaten mit HttpUtils_BlockingGet verfügbar?
Beitrag von: rudolfkoenig am 29 Februar 2024, 13:56:54
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...
Titel: Aw: HttpUtils: Response Headerdaten mit HttpUtils_BlockingGet verfügbar?
Beitrag von: DS_Starter am 29 Februar 2024, 14:58:22
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?
Titel: Aw: HttpUtils: Response Headerdaten mit HttpUtils_BlockingGet verfügbar?
Beitrag von: betateilchen am 29 Februar 2024, 15:47:07
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);
Titel: Aw: HttpUtils: Response Headerdaten mit HttpUtils_BlockingGet verfügbar?
Beitrag von: DS_Starter am 29 Februar 2024, 15:57:43
Ich habe zu ungenau formuliert ... Ich sehe keine Rückgabe von "httpheader".
Titel: Aw: HttpUtils: Response Headerdaten mit HttpUtils_BlockingGet verfügbar?
Beitrag von: rudolfkoenig am 29 Februar 2024, 17:41:37
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>
Titel: Aw: HttpUtils: Response Headerdaten mit HttpUtils_BlockingGet verfügbar?
Beitrag von: DS_Starter am 29 Februar 2024, 17:46:00
Interessant ... danke Rudi!