2
我有一些使用requests來調用api的函數。因此,一個號碼的呼叫類似的一個下面(簡化這個例子)的:驗證所有請求的最佳方法?
requests.get(url, data=data, auth=('user','password'))
所有的請求都將被授權,但我想找個認證的所有要求一個更清潔的方式,而不是僅僅包括在每次通話中都會有auth=('user','password')
部分。
我的第一個想法是創建一個繼承自requests
類的子類,然後重寫get
函數。類似下面:
class authRequests(requests):
def get(url, data):
return requests.get(url, data=data, auth=('user', 'password'))
然後用authRequests.get
代替requests.get
。我沒有豐富的Python經驗,所以這可能不是一個有效的例子,但我想知道這是否是正確的方法,或者如果我應該使用不同的方法來做到這一點?
啊有趣的提供數據的屬性來完成 - 所以,如果我有15個功能包含對'GET'電話,我可以只是包裝的所有功能與'with'聲明? –
@AbeMiessler yup,你不必使用'with'上下文管理器,可以實例化一個會話對象並傳遞它。如果函數是同一類的方法,那麼可以將會話實例化爲一個實例屬性:'self.session = requests.Session()'並使用它來發出請求'self.session.get(url,data = data) '..希望有幫助。 – alecxe
美麗 - 謝謝! –