[patch] GET-Request ohne Content-Length

Begonnen von cheanrod, 30 Mai 2019, 10:28:07

Vorheriges Thema - Nächstes Thema

cheanrod

Hallo Rudi!

Anbei ein Patch für die HttpUtils. Bisher wurde nach meinem Verständnis, unabhängig davon ob ein Request einen Content hat, das Header-Feld Content-Length gesetzt. Der Patch verhindert, dass bei einem GET-Request ohne Daten (bzw. Content) das Feld Content-Length mit dem Wert 0 in den Header eingetragen wird. Das Feld wird nur dann eingetragen, wenn wirklich Daten für den Content vorliegen.

Hintergrund ist, dass ich die HttpUtils über HTTPMOD verwende, um Kurse von der Seite ww.deka.de abzufragen. Seit einiger Zeit beantwortet der dortige Server GET-Requests mit dem Feld "Content-Length: 0" im Header mit dem Status-Code 400.

Ich habe die Anpassung nun mehrere Tage in meinem FHEM-System im Einsatz und konnte keine Seiteneffekte feststellen.

Ich würde mich freuen, wenn Du den Patch einchecken könntest.

Danke und Gruß
Sven

rudolfkoenig

Danke fuer den Hinweis.
Habs eingebaut, und auch die Bestimmung der HTTP Methode leicht angepasst.

Siehe auch https://tools.ietf.org/html/rfc7230#section-3.3.2:
ZitatA user agent SHOULD NOT send a Content-Length header field when the request message does not contain a payload body and the method semantics do not anticipate such a body.

Ich frage mich nur, warum HTTPMOD ein leeres $data setzt.

cheanrod