ich würde gerne einen Webserver (Heizung)
mit Python auslesen, bis jetzt mit HTTPDigestAuth so:
url='http://xxx.xxx.xxx.xxx/api/1.0/datapoint/1'
r = requests.get(url, auth=HTTPDigestAuth('user', 'passwort'),
verify=False, stream=True)
inhalt = r.text
Funktioniert.
Nun möchte ich ich aber die weiteren Punkte ohne übergabe der
Benutzerdaten auslesen, quasi so:
url='http://xxx.xxx.xxx.xxx/api/1.0/datapoint/2'
r = requests.get(url, verify=False, stream=True)
inhalt = r.text
Wie stelle ich es an, das der Server sich an den vorrigen
Login erinnert?
Am einfachsten geht das über das "Session" Objekt, siehe
https://docs.python-requests.org/en/latest/user/advanced/#session-objects
Ungefähr so:
url='http://xxx.xxx.xxx.xxx/api/1.0/datapoint/1'
with requests.Session() as sess:
sess.auth = ...
r = sess.get(url)
Die Methoden .get()/.post() usw. werden also nicht am Request-Objekt,
sondern am Session-Objekt aufgerufen. Requests kümmert sich im
Hintergrund um das Speichern der Auth-Cookies.
Freundliche Grüße,
Hardy
_______________________________________________
python-de Mailingliste -- [email protected]
Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an
[email protected]
https://mail.python.org/mailman3/lists/python-de.python.org/
Mitgliedsadresse: [email protected]