Ich versuche, einen Rest API Client für das Gespräch mit einem unserer Dienste zu erstellen. Jede Anfrage muss einen Autorisierungsheader enthalten, der von Epoch Times, Request Verb, Daten, Pfad etc. kompromittiert ist.Header automatisch zu Python hinzufügen Anfragen Anfragen
Ich versuche das Python Requests Modul so nahtlos wie möglich zu benutzen, bin aber unsicher, der beste Weg zu " injizieren "einen Header in jede Anfrage.
Es scheint ein Konzept von "Hooks" in Anfragen zu geben, aber derzeit gibt es nur einen "Response" Hook.
Ich erwog, das Session-Objekt zu erweitern und die "send" -Methode zu überschreiben, den Header hinzuzufügen und ihn dann an die super (Session.send) -Methode weiterzuleiten.
Mein Python ist nicht fantastisch, wenn es um OOP und Vererbung kommt, aber das ist, was ich
class MySession(Session):
def __init__(self, access_id=None, access_key=None):
self.access_id = access_id
self.access_key = access_key
super(MySession, self).__init__()
def send(self, request, **kwargs):
method = request.method
path = urlparse(request.url).path
request.headers['Authorization'] = self.__create_security_header(method, path)
request.headers['Content-Type'] = "application/json"
return Session.send(self, request, **kwargs)
Erstellt das aber einen neuen Header für jede Anfrage? Da der Header ein Hash der Methode, URI usw. ist, muss er generiert werden, bevor die Anfrage gesendet wird. –