2014-10-10 32 views
1

我想要做的是從一個站點獲取GET請求並返回401,然後重新驗證wiggle(可能已過時)並重試。但我不想第三次嘗試,因爲那將是我的身份驗證蠕動具有錯誤的憑據。有沒有人有這樣做的好方法,不涉及適當醜陋的代碼,理想情況下在Python的請求庫,但我不介意改變。如何在python請求中處理401(未授權)

回答

2

它沒有得到任何比這少難看,我想:

import requests 
from requests.auth import HTTPBasicAuth 

response = requests.get('http://your_url') 

if response.status_code == 401:  
    response = requests.get('http://your_url', auth=HTTPBasicAuth('user', 'pass')) 

if response.status_code != 200: 
    # Definitely something's wrong 
+0

是的,這與我想出的類似,只有我向上冒出了401。 – 2014-10-14 09:16:01

+0

酷!你可以自己寫出你自己的答案,並接受它,或接受這個答案。 – 2014-10-14 09:40:39

+1

我不會接受它;我意識到你和我是世界上最聰明的兩個人,但也許會有另一個像我們一樣聰明的人找到了更好的方法;-) – 2014-10-14 10:03:25

0

你可以在一個函數它們包裝和使用的裝飾評估響應和重試401在auth然後你只需要裝飾任何需要此重新授權邏輯的功能....